Calling a generator multiple times

Mitch Chapman Mitch.Chapman at bioreason.com
Thu Dec 6 15:30:43 EST 2001


Bruce Eckel wrote:
> 
> I'm trying to create a clever way to call a generator multiple
> times, but the only thing I've been able to come up with is:
> 
> import random
> rgen = random.Random()
> def itemGenerator(dummy):
>   return rgen.choice(['one', 'two', 'three', 'four'])
> 
> print map(itemGenerator, [None]* 25)
> 
> This works, but it requires the 'dummy' argument which seems
> inelegant. I'll bet someone has a better idea...

If you're using a recent Python release (>= 2.1?) you could
use list comprehensions:


def itemGenerator():
    return rgen.choice(['one', 'two', 'three', 'four'])

print [itemGenerator() for i in range(25)]

-- 
Mitch Chapman
Mitch.Chapman at bioreason.com



More information about the Python-list mailing list