- iter() 函数
- next()函数
- zip()函数
- enumerate()函数
描述
iter()函数用来生成迭代器
语法
iter()语法:
iter(object[,sentinel])
参数
- object:支持迭代的集合对象
- sentinel:如果传递了第二个参数,则参数 object 必须是一个可调用的对象(如,函数),此时,iter 创建了一个迭代器对象,每次调用这个迭代器对象的__next__()方法时,都会调用 object。
返回值
迭代器对象
实例
lst=[1,2,3] for i in iter(lst): print(i) 1 2 3next()函数
描述
next() 返回迭代器的下一个项目
next() 函数要和生成迭代器的iter()函数一起使用
语法
next语法:
next(iterable[,default])
参数说明:
iterable–可迭代对象
default–可选,用于设置在没有下一个元素时返回该默认值,如果不设置,又没有下一个元素则会触发 S toplteration 异常
返回值
返回下一个项目
实例
以下实例展示了next的使用方法:
# 首先获得Iterator对象: it=iter([1,2,3,4,5]) # 循环 while True: try: # 获得下一个值: x=next(it) print(x) except StopIteration: # 遇到StopIteration就退出循环 break
输出结果为:
1 2 3 4 5zip()函数
**描述:**用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用*号操作符,可以将元组解压为列表。
语法:
zip([iterable,...])
参数说明:
- iterabl:一个或多个迭代器
返回值
返回元组列表
实例
a=[1,2,3] b=[4,5,6] c=[4,5,6,7,8] zipped=zip(a,b) # 返回一个对象 list(zipped) # list()转换成列表 [(1,4),(2,5),(3,6)] list(zip(a,c)) # 元素个数与最短的列表一致 [(1,4),(2,5),(3,6)] a1,a2 = zip(*zip(a,b)) # 与zip相反,zip(*)可理解为解压,返回二维矩阵式 list(a1) [1,2,3] list(a2) [4,5,6]enumerate()函数
描述
enumerate()函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在for循环当中。
语法
enumerate(sequence,[start=0)]
参数
sequence:一个序列、迭代器或其他支持迭代对象
start:下标起始位置的值
返回值:
返回enumerate(枚举)对象
实例
seasons=['Spring','Summer','Fall','Winter') list(enumerate(seasons) [(0,’Spring'),(1,'Summer'),(2,'Fall’),(3,'Winter')] list(enumerate(seasons,start=1) [(1,'Spring'),(2,'Summer'),(3,'Fall'),(4,'Winter')
# for 循环使用enumerate seq=['one','two','three'] for i,element in enumerate(seq): print(i, element) 0 one 1 two 2 three