gpt4 book ai didi

python - 删除列表中的匹配项目

转载 作者:太空宇宙 更新时间:2023-11-04 10:36:33 25 4
gpt4 key购买 nike

抱歉,如果这是一个重复的问题,我进行了搜索但找不到任何帮助。

我目前正在尝试比较两个列表。如果有任何匹配项,我将从其中一个列表中将它们全部删除。

但是我得到的结果是错误的。这是我正在使用的方法的粗略但准确的表示:

>>> i = [1,2,3,4,5,6,7,8,9]
>>> a = i
>>> c = a
>>> for b in c:
if b in i:
a.remove(b)


>>> a
[2, 4, 6, 8]
>>> c
[2, 4, 6, 8]

所以我意识到主要问题是当我删除项目时它会缩短列表,因此 Python 然后会跳过中间项目(非常烦人)。因此,我创建了第三个列表作为可以循环的中间层。

真正让我感到困惑的是,即使我没有直接要求,这个列表似乎也会发生变化!

最佳答案

在 python 中,当你这样写时:

i = [1,2,3,4,5,6,7,8,9]

您创建一个对象(在本例中为列表)并将其分配给名称 i。您的下一行 a = i 告诉解释器 name a 指的是同一个对象。如果您希望它们是单独的对象,则需要复制原始列表。您可以通过切片简写 i[:] 来实现,或者您可以使用 a = list(i) 来更明确。

关于python - 删除列表中的匹配项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23021580/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com