wildfire
wildfire

Reputation: 119

Creating Simultaneous Loops in Python

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

Upvotes: 6

Views: 15222

Answers (5)

LJM
LJM

Reputation: 6444

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

Upvotes: 2

Mark Rushakoff
Mark Rushakoff

Reputation: 258378

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.

Upvotes: 21

sth
sth

Reputation: 229754

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

Upvotes: 11

Aarlo Stone Fish
Aarlo Stone Fish

Reputation: 21

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

Upvotes: 2

Preet Sangha
Preet Sangha

Reputation: 65536

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

Upvotes: 0

Related Questions