Python删除repeat元素

时间:2013-12-05 10:46:17

标签: python

我有两个清单。如何定义函数“remove_repeat_element”以从中删除重复元素? ?

def remove_repeat_element(a, b):
    ... ...

a = ['bd09fdf7-918e-4a5e-8338-0f6fe78fd238']
b = ['bd09fdf7-918e-4a5e-8338-0f6fe78fd238', '3c26f383-da50-446c-8613-64e1068bd57e']

result = remove_repeat_element(a, b)
print result
>>> ['3c26f383-da50-446c-8613-64e1068bd57e']

有人可以给我一些建议吗? 非常感谢!

3 个答案:

答案 0 :(得分:10)

您可以使用sets

>>> a = ['bd09fdf7-918e-4a5e-8338-0f6fe78fd238']
>>> b = ['bd09fdf7-918e-4a5e-8338-0f6fe78fd238', '3c26f383-da50-446c-8613-64e1068bd57e']
>>> list(set(b) - set(a))
['3c26f383-da50-446c-8613-64e1068bd57e']

答案 1 :(得分:2)

我的建议:

c = [x for x in b if x not in a]

写作非常简单,效率足够list comprehension

希望这有帮助!

<强>更新

要进行更有效的成员资格检查,请使用set代替list

a = set(a)
c = [x for x in b if x not in a]

这会更快,更不用说list很大时的改进。

答案 2 :(得分:0)

return [el for el in b if el not in a]