Изменения в списках неожиданно отражаются в подспискахPython

Программы на Python
Ответить
Anonymous
 Изменения в списках неожиданно отражаются в подсписках

Сообщение Anonymous »

Я создал список списков:

Код: Выделить всё

>>> xs = [[1] * 4] * 3
>>> print(xs)
[[1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]]
Затем я изменил одно из самых внутренних значений:
>>> xs[0][0] = 5
>>> print(xs)
[[5, 1, 1, 1], [5, 1, 1, 1], [5, 1, 1, 1]]
< /code>
Я ожидал, что это повлияет только на первого сублиста, а не на все из них. Это: < /p>
>>> print(xs)
[[5, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]]
< /code>
Почему каждый первый элемент каждого сублиста изменил 5 < /code>? < /p>


См. Также: < /p>
  • Как мне клонировать список, чтобы он не изменился неожиданно после назначения? и Как инициализировать двумерный массив (список списков, если не использовать Numpy) в Python? Для обходных пути для проблемы
  • Список словарных хранилищ только последнее добавленное значение в каждой итерации для аналогичной проблемы со списком DICTS
    < /li>
    Как инициализировать словарь пустых списков в Python? Для аналогичной проблемы с DICT списков


Подробнее здесь: https://stackoverflow.com/questions/240 ... expectedly
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»