Код: Выделить всё
>>> 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]]
Код: Выделить всё
>>> print(xs)
[[5, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]]
См. также:
- Как клонировать список, чтобы он не менялся неожиданно после назначения? и Как инициализировать двумерный массив (список списков, если не использовать NumPy) в Python? для обхода проблемы
- Список словарей хранит только последнее добавленное значение на каждой итерации для аналогичной проблемы со списком диктов
- Как инициализировать словарь пустых списков в Python? для аналогичной проблемы со списком списков
Подробнее здесь: https://stackoverflow.com/questions/240 ... expectedly