删除列表中的元素

时间:2017-11-18 16:27:38

标签: python

我有一个主列表,它重新组合我拥有的每个ID。

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

在所有这些ID中,我想排除其中一些。所以我做了第二个必须排除的ID列表

exclude = [1, 4, 5]

在您看来,有什么好的操作可以:

master_exclude = [2, 3, 6, 7, 8, 9, 10]

如果你知道我的意思?

谢谢!

4 个答案:

答案 0 :(得分:5)

此条件list comprehension将起作用:

master_exclude = [x for x in master if x not in exclude]

如果这些相关列表较大,请考虑首先将exclude转换为set,以使包含检查更具效果:

exclude = set(exclude)

答案 1 :(得分:1)

你可以通过一个简单的for循环来做这样的事情。

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

exclude = [1, 4, 5]

for o in exclude:
    try:
        master.remove(o)
    except ValueError:
        pass

print(master) # [2, 3, 6, 7, 8, 9, 10]

答案 2 :(得分:1)

list-comprehension绝对是正确的方法,但这也可以通过filter完成。不是理想的解决方案,而是另一个想法:

master_exclude = list(filter(lambda i: i not in exclude, master))

给出:

[2, 3, 6, 7, 8, 9, 10]

或者您可以使用whilefor-loop

for i in exclude:
    while master.count(i) > 0:
        master.remove(i)

给出相同的结果。

答案 3 :(得分:0)

这将删除master

exclude列表中的元素
for i in exclude:
    master.remove(i)

不会删除重复项。