我有两个清单。如何定义函数“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']
有人可以给我一些建议吗? 非常感谢!
答案 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]