Python列表的定义及使用
作者:一碗周 发布时间:2023-08-02 03:38:32
标签:Python,列表,定义,使用
1、定义和使用列表
在Python
中,列表是由一系列元素按照特定的顺序构成的数据结构,也就是说列表类型的变量可以存储多个数据,且可以重复。
1.1 定义列表
使用[]字面量语法定义变量,列表中的多个元素使用逗号,进行分割,
示例代码如下:
list1 = ["Hello", "一碗周", "你好"]
list2 = [1, 2, 3, 4, 5]
print(list1) # ['Hello', '一碗周', '你好']
print(list2) # [1, 2, 3, 4,5]
使用Python
内置的list将其他序列编程列表,示例代码如下:
list1 = list(range(10))
list2 = list("hello")
print(list1) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(list2) # ['h', 'e', 'l', 'l', 'o']
列表是一种可变的数据类型,也就是可以对列表的的元素可以进行修改,这与字符串有显著的差别,对字符串类型进行修改后,都会返回新的字符串
1.2 访问列表中的值
如果访问列表中的某个值,使用下标索引来访问列表中的值,与字符串一样使用方括号的形式截取字符,示例代码如下:
list1 = ["Hello", "一碗周", "你好"]
# 列表的索引
print(list1[1]) # 一碗周
# 列表的切片
print(list1[1:3]) # ['一碗周', '你好']
1.3 列表的运算符
表和字符串类型一样,同样支持拼接、重复、成员运算等操作,
示例代码如下:
list1 = ["Hello"]
list2 = ["World"]
list3 = [1, 2, 3, 4, 5]
list4 = list(range(1, 6))
list5 = list1 + list2 # ['Hello', 'World']
print(list5)
list6 = list1 * 3 # ['Hello', 'Hello', 'Hello']
list7 = list3 * 2 # [1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
print(list6)
print(list7)
print("W" in list1) # False
print("W" in list2) # False
# 列表的比较运算
# 两个列表比较相等性比的是对应索引位置上的元素是否相等
print(list3 == list4) # True
list8 = list(range(1, 7))
print(list3 == list8) # False
1.4 列表元素的遍历
遍历列表同遍历字符串是一样的,示例代码如下:
list1 = ["H", "e", "l", "l", "o"]
# 方法1
for index in range(len(list1)):
print(list1[index])
# 方法2
for ch in list1:
print(ch)
2、列表的方法
2.1 添加和删除元素
直接上代码
list1 = ["cute", "beautiful", "一碗周"]
# append()在列表尾部添加元素
list1.append("lovely")
print(list1) # ['cute', 'beautiful', '一碗周', 'lovely']
# insert()在列表指定索引位置插入元素
list1.insert(2, "prefect")
print(list1) # ['cute', 'beautiful', 'prefect', '一碗周', 'lovely']
# remove()删除指定元素
list1.remove("lovely")
print(list1) # ['cute', 'beautiful', 'prefect', '一碗周']
# pop()删除指定索引位置的元素
list1.pop(2)
print(list1) # ['cute', 'beautiful', '一碗周']
# clear()清空列表中的元素
list1.clear()
print(list1) # []
在Python
中也可以使用del关键字对列表元素进行删除,类似于pop
,示例代码↓
list1 = ["cute", "beautiful", "甜甜"]
del list1[1]
print(list1) # ['cute', '甜甜']
# 删除整个列表
del list1
print(list1) # NameError: name 'list1' is not defined
2.2 元素位置和次数
使用index()
来查找元素的位置,使用count()
来统计元素出现的次数
list1 = ["beautiful", "cute", "beautiful",
'prefect', "beautiful", "一碗周", 'lovely']
# 查找"beautiful"第一次出现的位置
print(list1.index("beautiful")) # 0
# 从第四个元素以后查找"beautiful"最近一次出现的位置
print(list1.index("beautiful", 3)) # 4
# 统计"beautiful"出现的次数
print(list1.count("beautiful")) # 3
2.3 元素排序和反转
使用sort()
方法可以实现列表元素的排序,而reverse()
方法可以实现元素的反转,示例代码↓
list1 = ["cute", "beautiful", "一碗周"]
list2 = list(range(10))
# 排序
list1.sort()
print(list1) # ['beautiful', 'cute', '一碗周']
# 反转
list1.reverse()
print(list1) # ['一碗周', 'cute', 'beautiful']
list2.reverse()
print(list2) # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
# 前面的操作原来的列表进行修改,如果不让原来的数据被破坏可以使用copy()备份一份
list3 = list2.copy()
list3.sort()
print(list2) # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
print(list3) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
2.4 小结
3、列表的生成式
要求:为字符串123和字符串ABC创建一个笛卡尔积构成的列表,示例代码如下:
原始方法:
a = "123"
b = "ABC"
list1 = []
for x in a:
for y in b:
list1.append(x + y)
print(list1) # ['1A', '1B', '1C', '2A', '2B', '2C', '3A', '3B', '3C']
生成列方法:
a = "123"
b = "ABC"
list1 = [x + y for x in a for y in b]
print(list1) # ['1A', '1B', '1C', '2A', '2B', '2C', '3A', '3B', '3C']
这中方法不仅代码量少,而且性能上也要优于普通的for
循环和append
追加的方式
4、嵌套的列表
因为列表里面的变量可以存储多种数据类型,就出现了列表里面有列表的时候,称之为列表的嵌套,示例代码如下:
list1 = [["cute", "beautiful", "一碗周"], "cute", "beautiful", "一碗周"]
print(list1[0]) # ['cute', 'beautiful', '一碗周']
print(list1[1]) # cute
# 如果想要查看被嵌套的那个cute则需要使用多个索引值
print(list1[0][0]) # cute
不管嵌套多少都是同理的
来源:https://juejin.cn/post/7022986018332606471


猜你喜欢
- 在这系列视觉设计的文章间隙插一篇字体单位的文章。前文说了,字体单位应该用em而不用px,原因简单来说就是支持IE6下的字体缩放,在页面中按c
- 之前写的单向链表和环形链表都只是单向的,只能单向遍历,不能根据后面的节点获取前面的节点,除非进行反转操作。双向链表每个节点都有两个指针,这两
- 在安装wordpress的时候,按照里面的readme.html的步骤进行安装,但是在访问wp-admin/install.php的时候就出
- 在 InnoDB中更加快速的全表扫描 一般来讲,大多数应用查询的时候都会用索引,查找很少的几行数据(主键查找或百行内的
- 引言在前端开发的工作当中,使用 npm run dev 的命令启动本地开发环境,是再正常不过的事了。那么,当输入完类似 npm run xx
- 今天分享一下Django实现的简单的文件上传的小例子。步骤 •创建Django项目,创建Django应用 •设计模型&n
- append(),extend(), insert()都是列表操作中常用的插入函数。其中前两个均接收一个参数,并插入到列表尾部。最后一个接收
- 前言对于HTTP请求,我们要在脑子里有一个根深蒂固的概念,那就是任何客户端传过来的数据都是不可信任的。那么开发接口的时候需要对客户端传提交的
- 1、使用说明首先说明,本文所使用的功能为pycharm专业版所支持,其他版本如社区版,教育版,则不一定支持。作为一名后端开发,我猜你的桌面上
- 最近 UCDChina 以“注意界面上的文字”为主题写了一系列的文章,使我在界面文字上的使用受益匪浅。之后,我对按钮上的内容的表现也做了一些
- 1 前言前面的文章中我们已经获取到了基金的阶段变动信息和ETF信息的获取,那么在本章中,我们将继续前面的内容,获取基金的价格信息,并且把之前
- 1.定义变量时可以直接赋值 DECLARE @Id int = 5 2.Insert 语句可以一次插入多行数据 INSERT INTO St
- 本文介绍urllib库在不同版本的Python中的变动,并以Python3.X讲解urllib库的相关用法。urllib库对照速查表Pyth
- list1 和list2 两个list , 想要得到list1是不是包含 list2 (是不是其子集 )a = [1,2] b = [1,2
- 本文实例为大家分享了python实现自动登录后台管理系统的具体代码,供大家参考,具体内容如下首先感谢下网络上的各位大神和博主,通过学习各位大
- 在Python我们要判断一个文件对当前用户有没有读、写、执行权限,我们通常可以使用os.access函数来实现,比如:# 判断读权限os.a
- 1、当前日期select DATE_SUB(curdate(),INTERVAL 0 DAY) ;2、明天日期select DATE_SUB
- 本文实例讲述了JS实现屏蔽网页右键复制及ctrl+c复制的方法。分享给大家供大家参考,具体如下:老是有些网站会屏蔽你的鼠标右键或者用快捷键复
- create proc addcolumn@tablename varchar(30), --表名@colname varchar(30),
- 简而言之就是,nn.Sequential类似于Keras中的贯序模型,它是Module的子类,在构建数个网络层之后会自动调用forward(