How to create a tuple quickly with list comprehension?

Terry Reedy tjreedy at udel.edu
Wed Jun 13 17:08:48 EDT 2007


<fdu.xiaojf at gmail.com> wrote in message news:466FA084.7050503 at gmail.com...
| 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.

But why do you 'desire' a tuple (rather than a list)?  There are only a few 
situations where it makes a difference.  One is dictionary keys, but a 
sequnce of several, rather that a few, is not typical of keys.

tjr






More information about the Python-list mailing list