, На мой взгляд, реализация Python приняла решение, которое позволяет избежать бесконечных циклов, но может давать неправильные результаты для объектов без округлостей, но с общими компонентами. Я бы предпочел увидеть цикл моей программы навсегда и исправить его, чем искать скрытую ошибку!

аюсь инициализировать список списков, представляющих массив 3x3:

import copy
m = copy.deepcopy(3*[3*[0]])
print(m)
m[1][2] = 100
print(m)

и вывод:

[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
[[0, 0, 100], [0, 0, 100], [0, 0, 100]]

это не то, что я ожидал, так как последние элементы каждой строки являются общими! Я получил нужный мне результат с помощью:

m = [ copy.deepcopy(3*[0]) for i in range(3) ]

но я не понимаю, почему первая (и более простая) форма не работает. неdeepcopy должен быть глубоким?

Ответы на вопрос(3)

Ваш ответ на вопрос