列表
一、定义
-
列表是容器类数据类型,将[]作为容器的标志,里面多个数据用逗号隔开:[数
据1,数据2,数据3,…]
list2 = [10, 20, 30, 50] -
列表是可变的(可变指的是容器中元素的个数和值可变 - 支持增删改)
列表有序(支持下标操作) - 顺序影响结果
-
元素的要求:没有要求(任何类型的数据都可以作为列表的元素,同一个列
表中的元素类型可以不一样)
# 列表中的元素可以使任何类型的数据 list3 = [10, 1.23, False, None, 'abc', [10, 20]]空列表用[]
二、查操作
-
查单个元素 - 一次获取一个数据
-
语法:
列表[下标] - 获取指定列表中指定下标对应的元素
-
说明:
-
列表 - 需要获取元素的列表(可以使任何结果是列表的表达式,比
如:保存列表的变量、具体的列表数据等)
-
[] - 固定写法3)下标 - 下标又叫索引,是列表中元素在列表中的
位置信息, 列表中的每个元素都有两个索引值,一个是从前往后从
0(第一个)开 始不断增加;另一个是从后往前从-1(倒数第一
个)开始不断减小
-
-
注意:下标不能越界
nums = [100, 98, 78, 99, 50] print(nums[1], nums[-4]) # 98 98 print(nums[-1]) # 50 # 越界报错 # print(nums[5]) # IndexError: list index out of range -
-
切片 - 一次获取多个元素
- 语法:
列表[开始下标:结束下标:步长] - 根据下标和步长获取指定列表中的部分元素
1)怎么确定切片结果
第一步:确定结果是否为空列表(看从开始下标到结束下标的方向和步长对
应的方式是否一致);如果方向一致结果一定不为空,反之结果肯定是空
步长为正:表示从前往后取;步长为负:表示从后往前取
第二步:确定有效范围 - 从开始到结束,开始下标对应的元素取得到,结束下
标对应的元素取不到
第二步:在有效范围内。按照步长的绝对值确定获取内容。
如果绝对值为1,在有效范围内容一个一个按顺序获取
如果绝对值是2,在有效范围内容内取1个跳1个再取1个
如果绝对值是3,在有效范围内容内取1个跳2个再取1个
…
2)怎么写切片
第一步:确定开始下标(目标对象的第一个元素对应的下标)
第二步:确定步长 确定正负号:看目标元素在原列表中的顺序是从前往后
(+)还是从后往前(-)
第三步:确定结束下标(保证所有需要的元素都能取到)
heroes = ['王昭君', '孙斌', '李白', '百里守约', '墨子', '澜', '孙悟空', '诸葛亮', '李信', '妲己']
print(heroes[1:4]) # ['孙斌', '李白', '百里守约']
- 遍历 - 一个一个的获取列表中所有的元素
- 方法1:
for 变量 in 列表:
循环体中的变量直接是列表的元素
- 方法2:通过遍历下标来遍历列表
for 变量 in range(len(列表)):
循环体变量获取到的是每个元素的下标,然后通过下标获取元素
- 方法3:
for 变量 in enumerate(games):
循环体变量获取到的是每个元素的下标,然后通过下标获取元素
# 方法1
games = ['王者荣耀', 'lol', '永劫无间', '和平精英', 'apex', '2k', '植物大战僵尸', '开心消消乐']
for i in games:
print(i)
print('---------------分割线--------------------')
print(len(games))
# 方法2
print('---------------分割线--------------------')
for index in range(len(games)):
print(index, games[index])
# 方法3
for index, item in enumerate(games):
print(index, item)
三、增删改操作
- 增 - 添加元素
- 列表.append(元素) - 在列表的最后添加指定元素
nums = [10, 20, 30]
print(nums) # [10, 20, 30]
nums.append(100)
print(nums) # [10, 20, 30, 100]
- 列表.insert() - 在列表指定下标对应元素前插入指定数据
nums = [10, 20, 30]
print(nums) # [10, 20, 30]
nums.insert(-1, 100)
print(nums) # [10, 20, 100, 30]
nums.insert(0, 200)
print(nums) # [200, 10, 20, 100, 30]
- 删 - 删除元素
- del 列表[下标] - 删除列表中指定下标对应的元素
games = ['王者荣耀', 'lol', '和平精英', '永劫无间', 'apex', '2k', '植物大战僵尸', '开心消消乐']
print(games)
del games[2]
print(games)
结果:
['王者荣耀', 'lol', '和平精英', '永劫无间', 'apex', '2k', '植物大战僵尸', '开心消消乐']
['王者荣耀', 'lol', '永劫无间', 'apex', '2k', '植物大战僵尸', '开心消消乐']
- 列表.remove(元素) - 删除列表中指定元素(如果不存在会报错;如果元素有多个,只会删除最前面的哪一个)
games = ['王者荣耀', 'lol', '和平精英', '永劫无间', 'apex', '2k', '植物大战僵尸', '开心消消乐']
print(games)
games.remove('和平精英')
print(games)
结果:
['王者荣耀', 'lol', '和平精英', '永劫无间', 'apex', '2k', '植物大战僵尸', '开心消消乐']
['王者荣耀', 'lol', '永劫无间', 'apex', '2k', '植物大战僵尸', '开心消消乐']
- pop
列表.pop() - 取出列表最后一个元素,并且返回
列表.pop(下标) - 取出列表指定下标对应的元素,并且返回
games = ['王者荣耀', 'lol', '和平精英', '永劫无间', 'apex', '2k', '植物大战僵尸', '开心消消乐']
print(games)
x = games.pop()
print(games, x)
x = games.pop(1)
print(games, x)
结果:
['王者荣耀', 'lol', '和平精英', '永劫无间', 'apex', '2k', '植物大战僵尸', '开心消消乐']
['王者荣耀', 'lol', '和平精英', '永劫无间', 'apex', '2k', '植物大战僵尸'] 开心消消乐
['王者荣耀', '和平精英', '永劫无间', 'apex', '2k', '植物大战僵尸'] lol
- 改 - 修改元素的值
列表[下标] = 新元素
games = ['王者荣耀', '开心消消乐', 'lol', '和平精英', '永劫无间', 'apex', '2k', '植物大战僵尸', '开心消消乐']
print(games)
games[0] = '部落冲突'
print(games)
games[-1] = '炉石传说'
print(games)
结果:
['王者荣耀', '开心消消乐', 'lol', '和平精英', '永劫无间', 'apex', '2k', '植物大战僵尸', '开心消消乐']
['部落冲突', '开心消消乐', 'lol', '和平精英', '永劫无间', 'apex', '2k', '植物大战僵尸', '开心消消乐']
['部落冲突', '开心消消乐', 'lol', '和平精英', '永劫无间', 'apex', '2k', '植物大战僵尸', '炉石传说']
- 案例
# 案例:将scores中所有不及格的分数全部修改成"重修"
scores = [89,23, 79, 99, 45, 60, 78, 59]
# [89,'重修",79, 99,'重修",60,78,'重修"门
for index, item in enumerate(scores):
if item < 60:
scores[index] = '重修'
print(scores)
本文详细介绍了Python编程中列表的基本操作,包括定义列表、通过下标和切片进行查找、遍历元素的方法,以及如何进行增加、删除和修改元素的操作。示例代码涵盖各种常见用法,帮助读者深入理解Python列表的使用。

被折叠的 条评论
为什么被折叠?



