从复制列表中删除项目[重复]

问题描述 投票:0回答:1

这个问题在这里已有答案:

我正在尝试从列表nm中删除项目“a”但不从列表名称中删除,但有些删除函数会从列表中删除它。请帮忙!

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

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

我期待名单在最后保留为[“a”,“b”,“c”]。

python list del
1个回答
0
投票

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

更改

nm=name

nm=name[:]

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

© www.soinside.com 2019 - 2024. All rights reserved.