В питона вы можете создать список, как так:обновления Список в двух местах
[[0,0]]*n
Это создает список таких, как это:
[[0, 0], [0, 0], [0, 0]]
Выпуск при обновлении списка таких как :
li[0][0]=10
[[10, 0], [10, 0], [10, 0]]
Есть ли способ создать списки определенного размера с помощью этого метода, но не сталкиваясь с этой проблемой?
Я создал это обходное решение, но есть ли лучший способ?
for x in range(players):
li+=[[0]*n]
Причина, почему это происходит потому, что списки хранятся в виде ссылки - так что, когда вы '[[0,0]] * n', что это интерпретируется как«сделать список '[ 0,0] ', а затем сделать второй список, который является« n »копиями ссылки на этот первый список». – Amber
См. Примечание 2. в онлайн-документации по Python по [Типы последовательностей] (http://docs.python.org/library/stdtypes.html#sequence-types-str-unicode-list-tuple-bytearray-buffer-xrange) , – martineau