initialising a list of lists

Fredrik Lundh fredrik at pythonware.com
Wed Nov 16 08:13:34 EST 2005


Peter Kleiweg wrote:

> This does not what I want it to do:
>
>    >>> a = [[]] * 6
>    >>> a[3].append('X')
>    >>> a
>    [['X'], ['X'], ['X'], ['X'], ['X'], ['X']]
>
> This does what I want:
>
>    >>> b = [[] for _ in range(6)]
>    >>> b[3].append('X')
>    >>> b
>    [[], [], [], ['X'], [], []]
>
> The first is clear and wrong. The second is hairy and right.
> Is there a way to do it clear and right?

http://www.python.org/doc/faq/programming.html#how-do-i-create-a-multidimensional-list

</F> 






More information about the Python-list mailing list