首页 > 解决方案 > 如何仅从新列表中删除元素

问题描述

假设我有一个列表l,我templ. 当我尝试从中删除元素时temp,也会从中删除元素l。这太奇怪了。我怎样才能只删除元素temp

l = [1,2,3]
temp = l
temp.remove(3)
print(l, temp)
Output: ([1, 2], [1, 2])

标签: pythonpython-3.x

解决方案


实际上两者l和都是在内存temp中引用同一个对象的名称。list当你对它们中的任何一个做某事时,你就是在对这两个名称指向的底层对象列表进行操作。您始终可以使用 copy 方法创建新对象:

temp = l.copy()

这样,您将拥有两个指向不同对象的名称。


推荐阅读