《python3 程序开发指南》
迭代子、迭代操作
迭代子是一个对象,该对象可提供_next_()方法,该方法依次返回每个相继的数据项,并在没有数据项时产生StopIteration()异常。
常见的迭代操作与函数
s+t | 序列s与序列t连接 |
s*n | 序列s的n个副本的连接 |
x in i | x是否在iterable i中 |
all(i) | 如果iterable i中每项都为True,就返回True |
any(i) | 任意项为True(只要有一项为True),返回True |
enumerate(i,start) | 通常见于 for...in 循环中,提供一个(index,item)元组序列,其中索引起始值为0或start |
len(x) | |
max(i,key) | 返回iterable i中的最大项 ,如果给定的是key函数,就返回key(item)值最大的项 |
min(i,key) | |
range(start,stop,step) |
返回整数迭代子 参数为stop时,取值范围 [0,stop-1] 参数为start,stop时,取值范围 [start,stop-1] 参数为start,stop,step时,取值范围[start,stop-1],取值间隔为step |
reversed(i) | 返回迭代子,该迭代子以反序从i中迭代返回项 |
sorted(i,key,reverse) |
以排序后顺序从迭代子i返回项 key用户提供DSU(修饰、排序、反修饰)排序 如果reverse为True, 则排序以反序进行 |
sum(i,start) |
返回 iterable i中项的和,加上start(默认为0) |
zip(i1.....iN) | 返回元组的迭代子,使用迭代子i1到iN |
enumerate():
>>> for i,j in enumerate("abcdef"):
print i,j 0 a
1 b
2 c
3 d
4 e
5 f >>> for i,j in enumerate((0,9,8,7)):
print i,j 0 0
1 9
2 8
3 7
>>> for i,j in enumerate([4,5,6]):
print i,j 0 4
1 5
2 6