Python基础语法【4】—— 结构数据类型之列表

2023-11-07




列表概念:

  在实际开发中,经常需要将一组数据存储起来,以便后边使用,在c语言或者Java中是使用数组存储一组数据,Python中没有数组,而是引入了列表。
  列表中的所有元素都在一对中括号内 [ ],中括号内的元素之间用逗号分隔开,如下所示:

[element1, element2, element3, …, elementn]

  列表中的元素个数不限,元素类型只要是Python支持的数据类型即可,如下列例子:

[“hello”, 2, [1,3,4], 2.3]


  上述列表中同时包含了字符串,整型,列表以及浮点型
  注意:列表是可以同时包含不同的数据类型,但是通常情况下,为了提高程序的可读性,同一列表中放入同一类型的数据


  通常用list代指列表,因为列表的数据类型就是list
在这里插入图片描述



一.创建列表

  创建列表的方法有两种,如下所示:

1.使用 [ ] 直接创建列表

语法格式:

listname = [element1 , element2 , element3 , ... , elementn]



如下所示,都是列表:

list1 = [1, 2, 3, 4, 5, 6, 7]
list2 = [“hello”, 1, 2.4]
list3 = [“hello”, [1,2], 4]
list4 = [ ]      #列表元素可以为空


2.使用list()函数创建列表

使用list()函数可以将其他类型转换为列表类型

语法格式:

listname = list(iteration)



例1:

# 将字符串转换成列表
list1 = list("hello")
print(list1)
# 将元组转换成列表
tuple1 = (1, 2, 3, 4)
list2 = list(tuple1)
print(list2)
# 创建空列表
print(list())

运行结果:
在这里插入图片描述




二.访问列表元素

访问列表元素的方式有两种:

1.使用索引方式访问列表元素

语法格式:

listname[i]  

注意:在这里索引(i)可以是正数,也可以是负数


例:

list1 = [1,"hello",2.3]
print(list1[2],list1[-2])

运行结果:
在这里插入图片描述


  

2.使用切片方式访问列表元素

语法格式:

listname[start : end : step]

上述的start表示起始索引,end表示结束索引,step表示步长
注意:上述的区间是左闭右开,即 [start,end)


例:

list1 = [1, 2, 3, 4, 5, 6, 7, 8]
print(list1[0:5])
print(list1[0:5:2])

运行结果:
在这里插入图片描述





三.添加元素到列表

Python中可以使用+将两个列表拼接起来

例:

list1 = [1, 2, 3]
list2 = ["hello", "Python"]
list3 = list1 + list2
print(list3)

运行结果:
在这里插入图片描述

上述拼接是产生一个新的列表,并不是改变原有的列表



Python添加元素到列表的三种方法:

1.使用append()方法添加元素

append()方法是在列表的末尾追加元素

语法格式:

listname.append(obj)



例:

list1 = [1, 2, 3]

#追加元素

list1.append(4)
print(list1)

list1.append("hello")
print(list1)

list1.append((1, 2))
print(list1)

list1.append([1, 2, 3])
print(list1)

运送结果:
在这里插入图片描述
  使用append()方法添加数据时,是将添加的数据作为一个整体添加到列表中


2.使用extend()方法添加元素

语法格式:

listname.extend(obj)



例:

list1 = [1, 2, 3]

#追加元素

list1.extend("hello")
print(list1)

list1.extend((1, 2))
print(list1)

list1.extend([1, 2, 3])
print(list1)

运行结果:
在这里插入图片描述
  使用extend()方法在进行添加的时候,是将待添加的obj中的元素逐个添加到列表中,待添加的obj可以是单个的元素,也可以是列表,元组,但是不可以是单个的数字


3.使用insert()方法添加元素

  append()方法和extend()方法只能在列表的末尾添加元素,而insert()方法是在列表中间的某个位置插入元素

语法格式:

listname.insert(index , obj)



  
例:

list1 = [1, 2, 3]

#追加元素

list1.insert(0, 4)
print(list1)

list1.insert(1, (1, 2))
print(list1)

list1.insert(2, [1, 2, 3])
print(list1)

运行结果:
在这里插入图片描述

  使用insert()方法进行插入时,也会将待插入的对象作为一个整体进行插入,而不是一个一个进行插入





四.删除列表中的元素


Python中可以使用下列4种方法删除元素

1.使用del 来根据索引值删除元素

语法结构:

# 删除指定索引值位置的元素
del listname[index]

# 删除中间一段连续的元素  [start,end)
del listname[start : end]



例:

list1 = [1, 2, 3, 4, 5, 6]

# 删除单个元素
del list1[5]
print(list1)

# 删除区间内的元素
del list1[0: 2]
print(list1)

运行结果:
在这里插入图片描述


2.使用pop() 删除元素

语法结构:

listname.pop(index)


index表示下标,如果不写,默认就是删除列表中的最后一个元素


例:

list1 = [1, 2, 3, 4, 5, 6]

list1.pop(0)
print(list1)


list1.pop(1)
print(list1)

list1.pop()
print(list1)

运行结果:
在这里插入图片描述


3.使用remove() 删除元素

语法结构:

listname.remove(element)

  
  该方法是根据元素的值进行删除的,而不是下标,remove()方法只会删除第一个和指定值相同的元素,而且必须保证该元素是存在的,否则会报错
  
例:

list1 = [1, 2, 3, 4, 2, 5, 6]

list1.remove(2)
print(list1)


list1.remove(0)
print(list1)

运行结果:
在这里插入图片描述



4.使用clear() 删除列表所有元素

即清空列表

例:

list1 = [1, 2, 3, 4, 2, 5, 6]

list1.clear()
print(list1)

运行结果:
在这里插入图片描述




五.列表修改元素

1.修改一个元素

  修改单个元素,直接对元素进行赋值就可以

例:

list1 = [1, 2, 3, 4, 2, 5, 6]

list1[0] = 0
list1[-1] = 2
print(list1)

运行结果:
在这里插入图片描述

2.修改一组元素

  通过切片语法来给一组元素进行赋值

例1:

list1 = [1, 2, 3, 4, 5, 6]

list1[1: 4] = [20, 30, 40, 50]
print(list1)

运行结果:
在这里插入图片描述


  如果对空的切片进行赋值时,就相当于插入了一组新的元素,空的切片赋值时,不支持单个值,如下所示:
例2:

list1 = [1, 2, 3, 4, 5, 6]

list1[4: 4] = [20, 30, 40, 50]
print(list1)

list1[4: 4] = 90
print(list1)

运行结果:

在这里插入图片描述


  如果使用字符串进行赋值,会自动将字符串转换成序列,每一个字符就是一个元素
例3:

list1 = [1, 2, 3, 4, 5, 6]

list1[2: 4] = "hiw"
print(list1)

运行结果:在这里插入图片描述
  
  
  使用切片语法是也可以指定步长,但是要求所赋值的新元素个数与原有的元素个数相同
例4:

list1 = [1, 2, 3, 4, 5, 6]

list1[0: 4: 2] = "hi"
print(list1)

运行结果:
在这里插入图片描述




六.列表查找元素

1.index()方法

  该方法用来查找某个元素在列表中出现的位置,如果该元素不在,则会报错

语法格式:

listname.index(obj, start, end)

注意:
1.start和end可以都不写,此时会检索整个列表
2.如果只写了start,那么就会从start检索到末尾
3.两个都写,就是检索start到end的元素


例:

list1 = [1, 2, 3, 4, 5, 6]

print(list1.index(1))
print(list1.index(2, 0, 2))
print(list1.index(7))

运行结果:
在这里插入图片描述

2.count()方法

count()方法还可以用来统计列表中出现指定元素的次数

语法结构:

listname.count(obj)

  
如果count的结果返回0就表示不存在该元素

例:

nums = [1, 2, 3, 4, 5, 6, 6, 6, 7]
# 统计元素出现的次数
print("6出现了%d次" % nums.count(6))
# 判断一个元素是否存在
if nums.count(6):
    print("列表中存在这个元素")
else:
    print("列表中不存在这个元素")

if nums.count(8):
    print("列表中存在这个元素")
else:
    print("列表中不存在这个元素", nums.count(8))

运行结果:
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python基础语法【4】—— 结构数据类型之列表 的相关文章

随机推荐

  • 海外专线网络费用

    在企业海外扩展和开展业务时 建立可靠的网络连接是至关重要的 而海外SD WAN专线网络作为一种优化广域网连接的解决方案 提供更好的连接质量和性能 本文将介绍海外SD WAN专线网络的费用组成 帮助企业更好地了解和规划网络投资 1 专线租用费
  • 【Windows基础】本地安全策略

    本地安全策略基本内容 概念 对登陆到计算机上的账号定义一些安全设置 在没有活动目录集中管理的情况下 本地管理员必须为计算机进行设置以确保其安全 主要是对登录到计算机得账户进行一些安全设置 主要影响是本地计算机安全设置 打开方式 三种方式 开
  • html5页面适配方法,H5案例分享:HTML5移动页面适配方法

    HTML5移动页面适配方法 之前做过PC页面时考虑最多的是兼容 这是因为浏览器之间的差异引起的 而移动端是基本没有 兼容 的问题了 全是CSS3 是不是很开心 但是开心早了 因为适配的问题来了 痛哭 什么是 适配 简单除暴点讲就是当我们开始
  • visual studio2022没有c++ window的空项目

    选择安装
  • hugo+GitHub搭建博客网站

    准备工具 Git 设置 Linux命令行下载就可以 arch Linux安装命令 sudo pacman S git Debian 和 Ubuntu 安装命令 sudo apt get install git Windows 的Git 下载
  • 西门子S7通信协议以及JAVA版的实现

    西门子S7协议实现 采用java的方式实现西门子S7协议 链接地址 iot communication github https github com xingshuangs iot communication gitee https gi
  • Leetcode437. 路径总和 III(C语言)

    Leetcode437 路径总和 III C语言 数据结构 树 算法与数据结构参考 题目 给定一个二叉树 找出路径和等于给定数值的路径总数 路径不需要从根节点开始 也不需要在叶子节点结束 路径方向必须向下 二叉树不超过1000个节点 且节点
  • Vue 运行后自动打开浏览器的解决办法(vuecli2和vuecli3+的区别)

    一 Vue JavaScript 需要项目npm run dev运行后自动打开浏览器 VueCli2 1 1 版本说明 vue 2 5 2 vue router 3 0 1 vuecli2 1 2 修改项目目录下 config index
  • 验证码识别+爆破

    碰到比较简单 很好辨认的验证码可以尝试此种方法爆破 审查元素 找到验证码对应URL 复制到域名后面访问一下 确定是验证码URL 然后 打开工具PKAV HTTP FUzzer 开始尝试自动识别验证码 工具下载地址 https sec kim
  • svn使用记录

    File not found transaction 109 3q path trunk Setting Config cs You have to update your working copy first 好像是本地的 svn库中包含
  • 大模型基础03:Embedding 实战本地知识问答

    大模型基础 Embedding 实战本地知识问答 Embedding 概述 知识在计算机内的表示是人工智能的核心问题 从数据库 互联网到大模型时代 知识的储存方式也发生了变化 在数据库中 知识以结构化的数据形式储存在数据库中 需要机器语言
  • js实现轮播图原理及示例(转)

    网上有很多的例子介绍 在这里我所做的 无缝滚动 就是 通过改变元素的left值让图片呈现左右滚动的效果 我们首先看一下 div css 的结构样式 div css代码
  • 计算机二级excel评选投票,计算机二级-31-2.电子表格题(小刘-评选投票)

    1 首先查看本节课的课程题目 要求如图所示 2 然后打开 考试素材 具体目录如图所示 3 然后是 第一小题 修改文件名为Excel 进行另存 默认一般跟素材文件夹目录相同 4 第二小题 题目要求如图所示 5 首先检查 代码地址是否对应 然后
  • 正则表达式攻略

    第一章 正则表达式字符匹配攻略 正则表达式是匹配模式 要么匹配字符 要么匹配位置 请记住这句话 然而关于正则如何匹配字符的学习 大部分人都觉得这块比较杂乱 毕竟元字符太多了 看起来没有系统性 不好记 本章就解决这个问题 内容包括 两种模糊匹
  • Java用File完成硬盘文件的增删查改操作

    我的项目环境是eclipse 如果用的是idea的话最好创建好一个同类名的 class文件 因为字符编码不同 我用的是GBK 如果报错或者出现中文注释不出现的话 最好搜一下idea怎么改字符编码 package com bili demo3
  • siebel escript入门——基础知识一

    1 检测escript变量是否已定义 var test if typeof test undefined TheApplication RaiseErrorText test is undefined 2 escript的基本数据类型 es
  • 立式oled拼接屏有哪些产品优点?

    葫芦岛oled拼接屏是一种高清晰度的显示屏 由多个oled屏幕拼接而成 它可以用于广告牌 展览 演示 会议等场合 具有高亮度 高对比度 高色彩饱和度 高刷新率等优点 能够吸引人们的眼球 提高信息传递效果 葫芦岛oled拼接屏的优点主要有以下
  • 02node.js-◆ 模块化的基本概念 ◆ Node.js 中模块的分类 ◆ npm与包 ◆ 模块的加载机制

    学习内容 模块化的基本概念 Node js 中模块的分类 npm与包 模块的加载机制 1 模块化的基本概念 1 1 什么是模块化 模块化是指解决一个复杂问题时 自顶向下逐层把系统划分成若干模块的过程 对于整个系统来说 模块是可组合 分解和更
  • linux中,如何使用tar进行解压缩

    linux中 如何使用tar进行解压缩 环境 windows 7 virtualboax fedora 15 kde 可以使用tar命令解压缩 tar gz文件 下面以解压缩qt源文件举例 1 在windows中将qt源文件拷贝到共享文件夹
  • Python基础语法【4】—— 结构数据类型之列表

    文章目录 一 创建列表 1 使用 直接创建列表 2 使用list 函数创建列表 二 访问列表元素 1 使用索引方式访问列表元素 2 使用切片方式访问列表元素 三 添加元素到列表 1 使用append 方法添加元素 2 使用extend 方法