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 -- http://mail.python.org/mailman/listinfo/python-list