删除与另一个列表中的任何条目匹配的列表条目

时间:2012-05-11 22:40:30

标签: python

我有一个我希望与其他列表匹配的诅咒词列表以删除匹配项。我通常会单独使用list.remove('entry'),但是循环遍历另一个列表中的条目列表 - 然后删除它们让我感到难过。有什么想法吗?

2 个答案:

答案 0 :(得分:10)

使用filter

>>> words = ['there', 'was', 'a', 'ffff', 'time', 'ssss']
>>> curses = set(['ffff', 'ssss'])
>>> filter(lambda x: x not in curses, words)
['there', 'was', 'a', 'time']
>>> 

也可以使用列表理解来完成:

>>> [x for x in words if x not in curses]

答案 1 :(得分:4)

使用套装。

a=set(["cat","dog","budgie"])
b=set(["horse","budgie","donkey"])
a-b
->set(['dog', 'cat'])