How to create a tuple quickly with list comprehension?

markacy markacy at gmail.com
Wed Jun 13 04:14:06 EDT 2007


On 13 Cze, 09:45, "fdu.xia... at gmail.com" <fdu.xia... at gmail.com> wrote:
> Hi all,
>
> I can use list comprehension to create list quickly. So I expected that I
> can created tuple quickly with the same syntax. But I found that the
> same syntax will get a generator, not a tuple. Here is my example:
>
> In [147]: a = (i for i in range(10))
>
> In [148]: b = [i for i in range(10)]
>
> In [149]: type(a)
> Out[149]: <type 'generator'>
>
> In [150]: type(b)
> Out[150]: <type 'list'>
>
> Is there a way to create a tuple like (1, 2, 3, 4, 5, 6, 7, 8, 9)
> quickly? I already I can use tuple() on a list which is created by list
> comprehension to get a desired tuple.
>
> Regards,
>
> Xiao Jianfeng

You should do it like this:

>>> a = tuple([i for i in range(10)])
>>> type(a)
<type 'tuple'>
>>> print a[0]
0
>>> print a[9]
9
>>> print a
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)

Cheers,
Marek




More information about the Python-list mailing list