Список списков изменений неожиданно отражается в сублистахPython

Программы на Python
Anonymous
 Список списков изменений неожиданно отражается в сублистах

Сообщение Anonymous »

Я создал список списков: < /p>
>>> xs = [[1] * 4] * 3
>>> print(xs)
[[1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]]
< /code>
Тогда я изменил одно из самых внутренних значений: < /p>
>>> 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

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