列表
-
列表是能够储存各种数据的容器
-
列表是可变的(支持增、删、改操作)
-
列表是有序的(支持下标操作)
-
列表的容器符号
[],list
下标
每个元素在列表中的位置
-
正向下标,从0开始
-
负向下标,从-1开始
-
下标不能越界
list1 = ['蜘蛛侠', '环太平洋', '海王', '复仇者联盟'] # 正向下标,从0开始 # 负向下标,从-1开始 # 海王 print(list1[2], list1[-2]) list1[100] # IndexError: list index out of range
列表
-
创建一个空列表
list1 = [] -
可变 - 增、删、改
-
增加元素:
append(元素): 追加insert(下标, 元素): 插入list1.append('Python') list1.append('Java') list1.insert(1, 'HTML') list1.insert(1, 0) print(list1) -
修改:通过下标改元素
语法:
语法:列表[下标] = 新的值list1[1] = 'C' print(list1) -
删除元素
-
del: 语法 -del 列表[下标] -
remove: 语法 -列表.remove(元素)移除某个元素(彻底删除,找不到记录了)
-
pop: 移除某个元素(删除文件后知道删除的是谁,类似电脑放入回收站)- 语法 - 列表.pop() - 取出列表最后一个元素并且返回(在内存中还存在,
del、remove在内存中不存在了) - 列表.pop(下标) - 取出列表中指定下标对应的元素并且返回移除某个元素
- 语法 - 列表.pop() - 取出列表最后一个元素并且返回(在内存中还存在,
-
clear: 将列表清空del list1[1] print(list1) print(list1.remove('Java')) # 删掉的元素无了 print(list1) print(list1.pop(0)) # 删掉的元素能得到 print(list1) list1.clear() print(list1)
-
-
-
切片
-
左闭右开区间,从原来的容器中提取元素组成新的容器。
-
切片可以越界。
list1 = ['蜘蛛侠', '环太平洋', '海王', '复仇者联盟'] print(list1[2:4]) -
变量[M: N: step]
- M:起始范围(默认从头开始取)
- N结束范围(默认取到尾部)
- step步长(默认值为1)
print(list1[1:3]) print(list1[1:4:2]) print(list1[:4:2]) print(list1[::2]) print(list1[:])a. 起始范围和结束范围不写的时候,冒号必须存在;步长不写时,冒号不用写。
b. 步长控制获取的元素,每间隔步长-1个元素获取一个元素(获取的当前元素+步长=下一个要获取的元素)
print(list1[::-1]) print(list1[4:1:-1])c. M和N必须同符号:step>0, M<N; step<0, M>N
print(list1[0:-1])d. 正向下标和负向下标可以组合使用
movies = ['阿甘正传', '肖申克的救赎', '霸王别姬', '三傻大闹宝莱坞', '环太平洋', '猿人泰山']
练习
# a.获取['阿甘正传'、'霸王别姬'、'环太平洋'] print(movies[::2]) # b.获取['肖申克的救赎'、'环太平洋'] print(movies[1::3]) # c.获取['环太平洋'、'霸王别姬'、'阿甘正传'] print(movies[-2::-2]) # d.获取['猿人泰山'、'阿甘正传'] print(movies[::-5]) # e. 获取['霸王别姬'] print(movies[2:3]) a = [] a.append(movies[2]) print(a) b = [movies[2]] print(b) -
-
循环(遍历)
- 直接遍历
movies = ['阿甘正传', '肖申克的救赎', '霸王别姬', '三傻大闹宝莱坞', '环太平洋', '猿人泰山'] for i in movies: print(i)-
间接遍历
len()能够查看容器的长度
print(len(movies)) for i in range(len(movies)): print(movies[i]) -
enumerate(): 将列表转换为一个可迭代对象(能进行遍历)print(enumerate(movies)) for i in enumerate(movies): print(i)
练习:将下方列表中的元素从小到大排序。
list1 = [23, 56, 10, 55, 76, 100, 30] list2 = [] while list1 != []: a = list1.pop(0) for j in list1: if a > j: list1.append(a) break else: list2.append(a) print(list2) # 讲解 # 冒泡排序 https://www.runoob.com/w3cnote/ten-sorting-algorithm.html # 每趟排序,排序次数 + 1 = 本趟排序的元素个数 # 外层循环控制趟数 for i in range(1, len(list1)): print(f'这是第{i}躺排序') print('每趟排序开始前:', list1) for j in range(0, len(list1) - i): print('每次排序的两个元素', list1[j], list1[j + 1]) if list1[j] > list1[j + 1]: list1[j], list1[j + 1] = list1[j + 1], list1[j] # 打印每一趟排序的结果 print(list1)
Python列表详解与操作实践
本文详细介绍了Python中的列表,包括其可变性、有序性及常用操作,如增删改查。通过实例展示了列表的创建、下标访问、切片、循环遍历等,并探讨了列表的排序方法。此外,还提供了多个练习题供读者实践。
1162

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



