看一下这段 Python 代码:
a = [1, 2, 3]
b = [4, 5, 6]
c = [[a, b], [b, a]] # [[[1, 2, 3], [4, 5, 6]], [[4, 5, 6], [1, 2, 3]]]
c[0][0].append(99) # [[[1, 2, 3, 99], [4, 5, 6]], [[4, 5, 6], [1, 2, 3, 99]]]
注意如何修改一个元素c
到处修改它。也就是说,如果99
被附加到c[0][0]
,它还附加到c[1][1]
。我猜这是因为Python很聪明指称 to the 同一个物体 for c[0][0]
and c[1][1]
。 (那是他们的id()是一样的。)
问题:有什么可以做的吗c
以便可以安全地在本地修改其列表元素?上面只是一个例子,我真正的问题有一个更复杂的列表,但有类似的问题。
(对于上面的问题,我们深表歉意。Python 专家请随意修改问题或标签,以更好地表达此查询。)