initialising a list of lists

Peter Kleiweg p.c.j.kleiweg at rug.nl
Wed Nov 16 07:58:45 EST 2005


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?

-- 
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