我正在尝试从列表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”]。
答案 0 :(得分:0)
这是因为name
是对列表的引用。 nm=name
只是创建一个指向相同列表的新变量。您需要显式复制该列表,以便如果您希望它们不同,则在内存中有两个。
更改
nm=name
到
nm=name[:]
这告诉python做列表的浅表副本,而不是复制引用。有很多方法可以做到这一点,我认为这是最简单的方法(对于列表),因为它涉及的编辑最少且没有导入。如果要为其他数据类型实现相同的功能,也可以使用Python标准库中的copy
模块。