Beginner's question about string's join() method
Diez B. Roggisch
deets at nospam.web.de
Fri Aug 29 08:51:20 EDT 2008
Macygasp wrote:
> Hi,
>
> Can anybody tell me why and how this is working:
>
>>>> ','.join(str(a) for a in range(0,10))
> '0,1,2,3,4,5,6,7,8,9'
>
> I find this a little weird because join takes a sequence as argument;
> so, it means that somehow, from the "str(a) ... " expression, a
> sequence can be generated.
>
> If I write this:
>>>> (str(a) for a in range(0,10))
> <generator object at 0x7f62d2e4d758>
> it seems i'm getting a generator.
>
> Can anybody explain this to me, please?
string.join takes an iterable. A generator is an iterable. Expressions of
the form "<exp> for <vars> in <iterable>" are called "generator
expressions", and yield a generator.
Thus your code works.
Diez
More information about the Python-list
mailing list