在Python中创建并行循环

6 投票
5 回答
14947 浏览
提问于 2025-04-15 14:28

我想创建一个循环,它的意思是:

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 的可迭代对象数量一样。

撰写回答