Creating Simultaneous Loops in Python

邮差的信 提交于 2020-12-01 11:03:52

问题


I want to create a loop who has this sense:

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

回答1:


You can use zip to turn multiple lists (or iterables) into pairwise* tuples:

>>> for a,b in zip(xrange(10), xrange(10)):
...     print a+b
... 
0
2
4
6
8
10
12
14
16
18

But zip will not scale as well as izip (that sth mentioned) on larger sets. zip's advantage is that it is a built-in and you don't have to import itertools -- and whether that is actually an advantage is subjective.

*Not just pairwise, but n-wise. The tuples' length will be the same as the number of iterables you pass in to zip.




回答2:


The itertools module contains an izip function that combines iterators in the desired way:

from itertools import izip

for (i, k) in izip(xrange(0,10), xrange(0,10)):
   print i+k



回答3:


You can do this in python - just have to make the tabs right and use the xrange argument for step.

for i in xrange(0, 20, 2); print i




回答4:


What about this?

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




回答5:


What you want is two arrays and one loop, iterate over each array once, adding the results.



来源:https://stackoverflow.com/questions/1452694/creating-simultaneous-loops-in-python

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!