从列表中的元组中删除重复项

Pra*_*tra 0 python tuples list duplicates

我有一个元组列表:

lst = [('a','b'), ('c', 'b'), ('a', 'd'), ('e','f'), ('a', 'b')]
Run Code Online (Sandbox Code Playgroud)

我想要以下输出列表:

output = [('a','b'), ('e','f')]
Run Code Online (Sandbox Code Playgroud)

即我想比较第一元组的元素与剩余的元组,并删除包含一个或多个重复元素的元组.

我的尝试:

我正在考虑使用for循环,但是一旦我拥有非常大的列表,那就不可行了.我通过以下帖子浏览但无法获得正确的解决方案:

从元组列表中删除重复成员 如何在保留顺序的同时从列表中删除重复项?

如果有人可以指导我正确的方向,那将非常有帮助.谢谢!

DSM*_*DSM 6

假设您希望抑制所有元素的"重复",而不仅仅是第一个元素,您可以使用:

lst = [('a','b'), ('c', 'b'), ('a', 'd'), ('e','f'), ('a', 'b')]

def merge(x):
    s = set()
    for i in x:
        if not s.intersection(i):
            yield i
            s.update(i)
Run Code Online (Sandbox Code Playgroud)

>>> list(merge(lst))
[('a', 'b'), ('e', 'f')]
>>> list(merge([('a', 'b'), ('c', 'd'), ('c', 'e')]))
[('a', 'b'), ('c', 'd')]
>>> list(merge([('a', 'b'), ('a', 'c'), ('c', 'd')]))
[('a', 'b'), ('c', 'd')]
Run Code Online (Sandbox Code Playgroud)