Python入门 17-9
- 坚持下去,总会有希望的,对吧。
笔记部分
切片
-
举例*(以list为例,可以推广到tuple)
L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack']
L[0:3] = [‘Michael’, ‘Sarah’, ‘Tracy’]
L[:3] = [‘Michael’, ‘Sarah’, ‘Tracy’]
L[1:3] = [‘Sarah’, ‘Tracy’]
L[-2:] = [‘Bob’, ‘Jack’]
L[-2:-1] = [‘Bob’]
L = list(range(100))
L[:10:2] = [0, 2, 4, 6, 8]
前10个数,每两个取一个
L[::5] = [0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95]
所有数,每隔5个取一个。
迭代
- for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration)
d = {‘a’: 1, ‘b’: 2, ‘c’: 3}
for key in d:
… print(key)
…
a
c
b
因为dict的存储不是按照list的方式顺序排列,所以,迭代出的结果顺序很可能不一样。
如果要迭代value,可以用for value in d.values(),如果要同时迭代key和value,可以用for k, v in d.items()。
- 通过collections模块的Iterable类型判断可迭代对象
from collections import Iterable
isinstance(‘abc’, Iterable) # str是否可迭代
True
isinstance([1,2,3], Iterable) # list是否可迭代
True
isinstance(123, Iterable) # 整数是否可迭代
False
- 引用了两个变量,在Python里是很常见的
for x, y in [(1, 1), (2, 4), (3, 9)]:
… print(x, y)
…
1 1
2 4
3 9