迭代器是一个可以记住遍历的位置的对象。
迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。
一、NEXT
二、iter
三、RANGE
四、MAP
五、ZIP
-
语法:zip(*iterables)
-
说明:
-
函数功能是聚合传入的每个迭代器中相同位置的元素,返回一个新的元组类型迭代器。
>>> x = [1,2,3]
>>> y = [4,5,6]
>>> xy = zip(x,y)
>>> xy #xy的类型是zip类型
<zip object at 0x0429C828>
#导入Iterable
>>> from collections import Iterable
>>> isinstance(xy,Iterable) #判断是否可迭代对象
True
>>> list(xy) #结果
[(1, 4), (2, 5), (3, 6)]
-
如果传入的迭代器长度不一致,最短长度的迭代器迭代结束后停止聚合。
>>> x = [1,2,3] #长度3
>>> y = [4,5,6,7,8] #长度5
>>> list(zip(x,y)) # 取最小长度3
[(1, 4), (2, 5), (3, 6)]
-
如果只传入一个迭代器,则返回的单个元素元组的迭代器。
>>> list(zip([1,2,3]))
[(1,), (2,), (3,)]
-
如果不传入参数,则返回空的迭代器。
>>> list(zip())
[]
-
zip(*[iter(s)]*n)等效于调用zip(iter(s),iter(s),...,iter(s))。
>>> x = [1,2,3]
>>> list(zip(*[x]*3))
[(1, 1, 1), (2, 2, 2), (3, 3, 3)]
>>> list(zip(x,x,x))
[(1, 1, 1), (2, 2, 2), (3, 3, 3)]
六、FILTER
七、LIST类型迭代
>>> L = [1,2,3,4,5]
>>> for i in range(len(L)):
>>> L[i] += 10
>>> print(L)
[11, 12, 13, 14, 15]
>>> L = [x + 10 for x in L]
>>> print(L)
[21, 22, 23, 24, 25]
八、DICT类型迭代
>>> D = dict(a=1, b=2, ,c=3)
>>> for k in sorted(D): print(k, D[k], end=' ')
1 2 3
|