列表操作
原创...大约 2 分钟
列表切片操作
类似字符串的切片操作,对于列表的切片操作和字符串类似。
切片是 Python 序列及其重要的操作,适用于列表、元组、字符串等等。
切片 slice 操作可以让我们快速提取子列表或修改。标准格式为:[起始偏移量start:终止偏移量end[:步长step]]
操作和说明 | 示例 | 结果 |
---|---|---|
[:] 提取整个列表 | [10,20,30][:] | [10,20,30] |
[start:] 从 start 索引开始到结尾 | [10,20,30][1:] | [20,30] |
[:end] 从头开始知道 end-1 | [10,20,30][:2] | [10,20] |
[start:end] 从 start 到 end-1 | [10,20,30,40][1:3] | [20,30] |
[start:end:step] 从 start 提取到 end-1,步长是 step | [10,20,30,40,50,60,70][1:6:2] | [20, 40, 60] |
其他操作(三个量为负数)的情况:
示例 | 说明 | 结果 |
---|---|---|
[10,20,30,40,50,60,70][-3:] | 倒数三个 | [50,60,70] |
[10,20,30,40,50,60,70][-5:-3] | 倒数第五个到倒数第三个(包头不包尾) | [30,40] |
[10,20,30,40,50,60,70][::-1] | 步长为负,从右到左反向提取 | [70, 60, 50, 40, 30, 20, 10] |
a = [20, 40, 60, 80, 100]
print(a[1:3]) # [40, 60]
b=[10,20,30,40,50,60,70]
print(b[::-1]) # [70, 60, 50, 40, 30, 20, 10]
列表的遍历
a = [10,20,30,40]
for obj in a:
print(obj)
列表排序
修改原列表的排序
a = [20, 10, 30, 40]
a.sort() # 默认是升序排列 [10, 20, 30, 40]
a.sort(reverse=True) # 降序排列 [40, 30, 20, 10]
import random
a = [20, 10, 30, 40]
random.shuffle(a) #打乱顺序 [20, 40, 30, 10]
新建列表的排序
我们也可以通过内置函数 sorted()
进行排序,这个方法返回新列表,不对原列表做修改。
a = [20, 10, 30, 40]
b = sorted(a)
print(id(a), id(b))
通过上面操作,我们可以看出,生成的列表对象 b 和 c 都是完全新的列表对象。
max 和 min
用于返回列表中最大和最小值。
a = [3, 10, 20, 15, 9]
max(a) # 20
min(a) # 3
sum
对数值型列表的所有元素进行求和操作,对非数值型列表运算则会报错。
a = [3,10,20,15,9]
sum(a) # 57
二维列表相关操作
一维列表可以帮助我们存储一维、线性的数据。
二维列表可以帮助我们存储二维、表格的数据。例如下表的数据:
姓名 | 年龄 | 薪资 | 城市 |
---|---|---|---|
高小一 | 18 | 30000 | 北京 |
高小二 | 19 | 20000 | 上海 |
高小五 | 20 | 10000 | 深圳 |
a = [
["高小一",18,30000,"北京"],
["高小二",19,20000,"上海"],
["高小五",20,10000,"深圳"],
]
print(a[1][0],a[1][1],a[1][2]) # 高小二 19 20000
Powered by Waline v2.15.7