Я нашел много обсуждений, связанных с "мелкой копией" в Python, но я не могу найти свою точную проблему.
Насколько я понимаю, создание мелкой копии все еще содержит ссылки на исходные значения списка,Это справедливо в следующем случае двумерного списка.
>>> x = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> y = list(x)
>>> x.append(['New value'])
>>> x
[[1, 2, 3], [4, 5, 6], [7, 8, 9], ['New value']]
>>> y
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> x[0][0] = 'A'
>>> x
[['A', 2, 3], [4, 5, 6], [7, 8, 9], ['New value']]
>>> y
[['A', 2, 3], [4, 5, 6], [7, 8, 9]]
Теперь, в одномерном списке, я не нашел этого эффекта.
>>> a = [1,2,3,4,5]
>>> b = list(a)
>>> a.append(10)
>>> a
[1, 2, 3, 4, 5, 10]
>>> b
>>> [1, 2, 3, 4, 5]
>>> a[0] = 'A'
>>> a
['A', 2, 3, 4, 5, 10]
>>> b
[1, 2, 3, 4, 5]
Может кто-нибудь пожалуйстауточнить, что стоит за этой разницей?