从复制清单中删除项目

时间:2019-04-18 16:34:58

标签: python list del

我正在尝试从列表nm中删除项目“ a”,而不是从列表名称中删除,但是一些remove函数如何从两个列表中删除它。请帮忙!

我也尝试使用del函数,但没有成功。

>>> name=["a","b","c"]
>>> nm=name
>>> nm.remove("a")
>>> nm`enter code here`
['b', 'c']
>>> name
['b', 'c']

我希望名称列表在末尾保留为[“ a”,“ b”,“ c”]。

1 个答案:

答案 0 :(得分:0)

这是因为name是对列表的引用。 nm=name只是创建一个指向相同列表的新变量。您需要显式复制该列表,以便如果您希望它们不同,则在内存中有两个。

更改

nm=name

nm=name[:]

这告诉python做列表的浅表副本,而不是复制引用。有很多方法可以做到这一点,我认为这是最简单的方法(对于列表),因为它涉及的编辑最少且没有导入。如果要为其他数据类型实现相同的功能,也可以使用Python标准库中的copy模块。