initialising a list of lists

Peter Kleiweg p.c.j.kleiweg at rug.nl
Wed Nov 16 08:27:30 EST 2005


Fredrik Lundh schreef op de 16e dag van de slachtmaand van het jaar 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

In other words: no there isn't.

-- 
Peter Kleiweg  L:NL,af,da,de,en,ia,nds,no,sv,(fr,it)  S:NL,de,en,(da,ia)
info: http://www.let.rug.nl/~kleiweg/ls.html



More information about the Python-list mailing list