On Aug 29, 3:51 pm, "Diez B. Roggisch" <[EMAIL PROTECTED]> 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 -- http://mail.python.org/mailman/listinfo/python-list