我有一个简单的代码如下:
def swap(node): m00 = node[0][0] node[0][0] = node[1][0] node[0][1] = m00 originalList = [[1,2,3], [4,5,6], [7,8,9]] # temp = list(originalList) temp = originalList[:] swap(temp) print originalList
最初,我使用上面显示的值定义一个列表,然后将该列表复制到一个临时列表中。我尝试了两种复制方法。然后,我使用temp列表执行交换功能,然后再次打印原始列表。结果,原始列表被更改。这种行为背后的原因是什么?
temp
originalList[:]复制 外部 列表,但复制3个较短的列表。您可以像这样复制它们:
originalList[:]
temp = [x[:] for x in originalList]