Ed Singleton wrote:
> I would like to be able to do something along the lines
of:
>
>>>> my_list = [1, 2, x for x in range(3,6), 6]
>
> However this doesn't work. Is there any way of
achieving this kind of thing?
my_list = [1, 2] + range(3,6) + [6]
or, to build it in steps,
my_list = [1, 2]
my_list.extent(range(3, 6))
my_list.append(6)
By the way I can't think of any reason to write "x for
x in range(3, 6)"
instead of just "range(3, 6)". range() returns a
list which can be used
almost anywhere the generator expression can be. If you need
an explicit
iterator use iter(range(3, 6)).
> I wrote a quick function that allows me to use the
generator
> expression as long as it is the last argument:
>
>>>> def listify(*args):
> ... return [arg for arg in args]
or
return list(args)
Kent
> ...
>>>> my_list = listify(1,2, *(x for x in
range(3,6)))
>
> but obviously this limits me to using it only at the
end of a list.
>
> Any clues on this greatly appreciated.
>
> Thanks
>
> Ed
> _______________________________________________
> Tutor maillist - Tutor python.org
> http://
mail.python.org/mailman/listinfo/tutor
>
_______________________________________________
Tutor maillist - Tutor python.org
http://
mail.python.org/mailman/listinfo/tutor
|