在Python中创建并行循环
我想创建一个循环,它的意思是:
for i in xrange(0,10): for k in xrange(0,10): z=k+i print z where the output should be 0 2 4 6 8 10 12 14 16 18
5 个回答
2
这个怎么样呢?
i = range(0,10)
k = range(0,10)
for x in range(0,10):
z=k[x]+i[x]
print z
0
2
4
6
8
10
12
14
16
18
11
itertools
模块里有一个叫做izip
的函数,它可以按照你想要的方式把多个迭代器组合在一起:
from itertools import izip
for (i, k) in izip(xrange(0,10), xrange(0,10)):
print i+k
21
你可以使用 zip
把多个列表(或者其他可迭代的东西)变成成对的元组:
>>> for a,b in zip(xrange(10), xrange(10)):
... print a+b
...
0
2
4
6
8
10
12
14
16
18
不过,zip
在处理更大的数据集时,表现没有 izip
(提到的那个东西)好。zip
的好处是它是内置的,你不需要额外去 import itertools
,而这个是否真的是个好处,见仁见智。
*不仅仅是成对的,还是 n 组的。元组的长度会和你传给 zip
的可迭代对象数量一样。