mult-indexed xrange?

Jason Orendorff jason at jorendorff.com
Mon Mar 4 23:06:24 EST 2002


Huaiyu Zhu wrote:
> I forgot to mention: without generating temporary lists.
> 
> >
> >for (x,y) in [(i,j) for i in range(2) for j in range(3) ]:
> >    print x,y
> >0 0 0
> >0 0 1
> ...
> 
> Is list comprehension lazy, ie. without generating the actual list?  

No, list comprehensions are eager.

You want generators:

from __future__ import generators

def pairs(n, m):
    for i in xrange(n):
        for j in xrange(m):
            yield (i, j)

for (x, y) in pairs(2, 3):
    print x, y

## Jason Orendorff    http://www.jorendorff.com/





More information about the Python-list mailing list