Beginner's question about string's join() method

Macygasp macygasp at gmail.com
Fri Aug 29 15:52:11 EDT 2008


On Aug 29, 3:51 pm, "Diez B. Roggisch" <de... at nospam.web.de> wrote:
> 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.



Thanks, that's what I wanted to know.


>
> Diez




More information about the Python-list mailing list