从复制的lis中删除项目

2024-03-29 05:36:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从列表nm中删除项目“a”,但不是从列表名中删除,而是从两个列表中删除项目“a”。请帮忙

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

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

我原以为名单最后还是[“a”、“b”、“c”]


Tags: 项目函数name列表herecoderemoveenter
1条回答
网友
1楼 · 发布于 2024-03-29 05:36:18

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

改变

nm=name

nm=name[:]

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

相关问题 更多 >