【问题标题】:Deleting items from copied list [duplicate]从复制的列表中删除项目[重复]
【发布时间】:2019-04-18 16:34:57
【问题描述】:

我正在尝试从列表 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】:

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

改变

nm=name

nm=name[:]

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-29
    • 2013-08-03
    • 2014-09-30
    • 1970-01-01
    • 1970-01-01
    • 2018-05-23
    • 1970-01-01
    相关资源
    最近更新 更多