【发布时间】:2019-03-06 10:02:57
【问题描述】:
这让我很困惑,即使第二个没有被触及,两个列表也会同时发生变化。
我搜索并发现我应该使用列表推导来获取新指针,因此我不会使用相同的列表,但不,它仍然会执行以下操作! 我在网上找不到这种行为的原因。
display_order = current_order[:]
print(current_order)
print(display_order)
display_order[0][3] = "CHANGE"
print(current_order)
print(display_order)
输出:
[['ID', 'Product', '999', 'Section', 'Seat']]
[['ID', 'Product', '999', 'Section', 'Seat']]
[['ID', 'Product', '999', 'CHANGE', 'Seat']]
[['ID', 'Product', '999', 'CHANGE', 'Seat']]
【问题讨论】:
-
您复制外部列表的内容,也就是(相同的)内部列表。你需要一个深拷贝。
-
列表包含对象,您需要复制它们。使用:
copy.deepcopy(current_order).