2024-03-29 05:36:18 发布
网友
我试图从列表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”]
这是因为name是对列表的引用nm=name只是创建了一个指向同一列表的新变量。您需要显式复制列表,以便在内存中有两个列表,如果您希望它们不同的话
name
nm=name
改变
到
nm=name[:]
这告诉python对列表进行浅层复制,而不是复制引用。有很多方法可以做到这一点,我认为这是最简单的(对于列表),因为它只需要很少的编辑,不需要导入。如果希望对其他数据类型实现相同的功能,还可以使用Python标准库中的copy模块
copy
这是因为
name
是对列表的引用nm=name
只是创建了一个指向同一列表的新变量。您需要显式复制列表,以便在内存中有两个列表,如果您希望它们不同的话改变
到
这告诉python对列表进行浅层复制,而不是复制引用。有很多方法可以做到这一点,我认为这是最简单的(对于列表),因为它只需要很少的编辑,不需要导入。如果希望对其他数据类型实现相同的功能,还可以使用Python标准库中的
copy
模块相关问题 更多 >
编程相关推荐