遍历:处理列表的起点
用上一课的 for x in a 就能把列表每个元素挨个拿出来:
a = [3, 1, 4, 1, 5]
for x in a:
print(x)后面的求和、找最值,本质都是「遍历一遍顺手做点事」。遍历是一切列表操作的基础。
切片:切出连续的一段
切片写法 a[起点:终点],切出连续的一段,得到一个新列表。关键规矩:含起点、不含终点,和 range 一致。
a = [3, 1, 4, 1, 5]
a[1:3] # [1, 4],1号到2号(不含3号)
a[:2] # [3, 1],省略起点=从头
a[2:] # [4, 1, 5],省略终点=到尾排序:sorted vs sort
两种排序写法,区别在「动不动原列表」:
sorted(a):返回一个排好序的新列表,原来的 a 不变(像誊抄一份)。a.sort():直接把原列表本身排好,不返回新的(像在原件上重排)。
想保留原顺序用 sorted,不在乎就用 sort。注意 b = a.sort() 是个常见坑,b 会是 None。
in / min / max / sum:现成的小工具
a = [3, 1, 4, 1, 5]
4 in a # 4在不在,返回 True
min(a) # 1,最小
max(a) # 5,最大
sum(a) # 14,总和这几个把「遍历一遍找答案」的活儿替你包办了,是处理列表数据时出镜率最高的工具。注意 sum 只能加数字列表。
列表推导式:一行造新列表
Python 的招牌写法,能一行从旧列表造出新列表:
a = [3, 1, 4, 1, 5]
b = [x * 2 for x in a] # [6, 2, 8, 2, 10]读法很像说人话:先看 for x in a(对每个 x),再看前面的 x*2(要造的东西)。刚入门觉得绕没关系,多写几次就会爱上它的简洁。