【发布时间】:2011-11-23 22:13:01
【问题描述】:
我完全不知道为什么会这样:
A = [[1,0], [2,2]]
B = list(A)
print('start A:', A, 'start B:', B)
A[0][0] = 999
print('end A:', A, 'end B:', B)
这会返回:
start A: [[1, 0], [2, 2]] start B: [[1, 0], [2, 2]]
end A: [[999, 0], [2, 2]] end B: [[999, 0], [2, 2]]
列表 A 和 B 最终是相同的,即使我从 A 中明确复制了 B。这只发生在我执行 A[0][0] = 999; 之类的操作时。如果我用 A[0] = 999 替换它,那么最后 A 和 B 是不同的。
这背后的原因是什么,有什么办法可以在不影响B的情况下以这种方式改变A?
【问题讨论】:
标签: python list python-3.x