Python - динамический вложенный список

Итак, я пытаюсь создать вложенный список на основе Python по ширине и высоте. Это то, что я имею до сих пор:

    width = 4
    height = 5
    row = [None]*width
    map = [row]*height

Теперь это, очевидно, не совсем верно. При печати это выглядит хорошо:

[[None, None, None, None],
 [None, None, None, None],
 [None, None, None, None],
 [None, None, None, None],
 [None, None, None, None]]

Но при попытке присвоить значение позиции следующим образом:

map[2][3] = 'foo'

Я получаю:

[[None, None, None, 'foo'],
 [None, None, None, 'foo'],
 [None, None, None, 'foo'],
 [None, None, None, 'foo'],
 [None, None, None, 'foo']]

Ясно, что это происходит потому, что каждый подсписок действительно просто ссылается на один и тот же объект, строку, поэтому его изменение, меняет их всех. Так что это самое близкое, что у меня есть!

Как я могу динамически генерировать вложенный список? Спасибо!

6
задан DizzyDoo 27 August 2010 в 18:49
поделиться