Nor*_*rSD 3 python zip iterator list
在Python中,我们都知道有一个有用的功能:例如zip:
a = [1,2,3,4,5]
b = [5,4,3,2,1]
Run Code Online (Sandbox Code Playgroud)
我们可以在一行中"添加"这些列表:
c = [ x[0] + x[1] for x in zip(a,b) ]
Run Code Online (Sandbox Code Playgroud)
但似乎zip创建了一个新列表.在许多情况下,我想要的只是一对数据(a [i],b [i]),我根本不想要"zip"列表.
在c#中,我们可以创建一个迭代器来从a和b获取对数据,因此我们可以避免创建一个新的"zip"列表.
python怎么样?
创建一个聚合来自每个迭代的元素的迭代器.像zip()一样,除了它返回迭代器而不是列表.用于一次几次迭代的锁步迭代.
例:
>>> from itertools import izip
>>> a = [1,2,3,4,5]
>>> b = [5,4,3,2,1]
>>> c = izip(a, b)
>>> c
<itertools.izip object at 0x10d1aaf38>
>>> for x, y in c:
... print x, y
...
1 5
2 4
3 3
4 2
5 1
Run Code Online (Sandbox Code Playgroud)
请注意,在Python-3.x izip()中消失了,zip()返回一个迭代器.