6

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
  • 1
    Is that the real output you're looking for, or is this a simplified version of the problem? Commented Sep 21, 2009 at 3:02

5 Answers 5

21

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.

Sign up to request clarification or add additional context in comments.

Comments

11

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

1 Comment

And of course zip() is a built-in function in Python. And Python 3.x's zip() works exactly like izip() from Python 2.x
2

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

Comments

2

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

Comments

0

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

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.