如何在python中的多元组列表中搜索唯一元组

如何在python中的多元组列表中搜索唯一元组,python,Python,如果我有 a = [("1","2"),("5","6")] [("3","4"), ("5","6")] [("5","7"), ("2","3")] 如何搜索元组列表以获得有序的唯一元组列表,例如: B = [("1","2"),("5","6"), ("3","4"), ("5","7"), ("2","3")] 提供与a相同的元组列表 编辑: 由于没有一个解决方案对我有效,我给出了实际问题: 我有一个包含四个句子的文本文件,比如: 这是utf-8线路1 这是一号线 这是utf 2

如果我有

a = [("1","2"),("5","6")]  [("3","4"), ("5","6")] [("5","7"), ("2","3")]
如何搜索元组列表以获得有序的唯一元组列表,例如:

B = [("1","2"),("5","6"), ("3","4"), ("5","7"), ("2","3")]

提供与a相同的元组列表

编辑:

由于没有一个解决方案对我有效,我给出了实际问题:

我有一个包含四个句子的文本文件,比如:

  • 这是utf-8线路1
  • 这是一号线
  • 这是utf 2号线
  • 这是2号线
  • 我将第1行和第3行提取为变量(utfvar),将第2行和第4行提取为(engvar)。然后使用以下命令创建元组:

    UtfEng = list (zip (utfvar,engvar))
    
    打印
    UtfEng
    是:

    [('This','This'), ('is','is')...('line','line'),('1','1')]
    [('This','This'), ('is','is')...('line','line'),('2','2')]
    
    我想从中提取唯一元组,如下所示:

    [('This','This'), ('is','is')...('line','line'),('1','1'),('2','2')]
    

    正如@jornsharpe在评论中所写的,这不是一个有效的python

    但假设你有三张清单

    >>> a = [("1","2"),("5","6")] ;b= [("3","4"), ("5","6")];c= [("5","7"), ("2","3")]
    
    合并这些

    >>> a+b+c
    
    会给你,

    [('1', '2'), ('5', '6'), ('3', '4'), ('5', '6'), ('5', '7'), ('2', '3')]
    
    那你可以

    >>> list(set(a+b+c))
    [('2', '3'), ('1', '2'), ('5', '7'), ('5', '6'), ('3', '4')]
    
    这将为您提供唯一的元组


    假设您输入的数据采用这种格式(因为您发布的代码已损坏):

    首先展平列表,然后执行之前所做的操作:

    flattened_list = [item for sublist in a for item in sublist]
    
    Unique = []
    for pair in flattened_list:
        if pair not in Unique:
            Unique.append(pair)
    
    print(Unique)
    
    它们是包含元组的列表列表。。。我想生成一个 唯一元组列表

    使用集合的解决方案。计数器对象:

    import collections
    
    a = [[("1","2"),("5","6")], [("3","4"), ("5","6")], [("5","7"), ("2","3")]]
    c = collections.Counter([t for l in a for t in l])
    unique_tuples = [t for t in c.keys()]
    
    print(unique_tuples)
    
    输出:

    [('3', '4'), ('5', '7'), ('1', '2'), ('2', '3'), ('5', '6')]
    

    什么是
    a
    ?这是一个元组列表吗?您现在拥有的内容没有意义。是否应将
    (“5”、“6”)
    (“6”、“5”)
    视为重复项?这是无效的Python,并且不会迭代子列表。@chepner它们是包含元组的列表列表。。考虑我在一个文件中有四个句子,我做了条带和列表(zip(行)),我得到两个元组列表。我想生成一个唯一的列表tuple@jonrsharpe我正在编辑文件中的行,并逐行读取它,并将其保存在变量中,当我这样做时:print(myvar)[('བུམོ', 'bhum'),('གསང', '圣',('བ', 'wa'),('ཀུན', '"",གྱི', 'ghi'),('ཡོན', 'yOn'),('ཏན', '吨')][('ཡོན', 'yOn'),('ཏན', '吨',('དང', '"",གདུང', '"",ཤིང', '罪',('ཕྱུག', '朱克',('པའི', '"",དྲུང', '"",དྲུང', 'DhuN’)]type(myvar)它们并不是真正的列表,因为当我打印(type(myvar))时,我会得到两个列表:
    import collections
    
    a = [[("1","2"),("5","6")], [("3","4"), ("5","6")], [("5","7"), ("2","3")]]
    c = collections.Counter([t for l in a for t in l])
    unique_tuples = [t for t in c.keys()]
    
    print(unique_tuples)
    
    [('3', '4'), ('5', '7'), ('1', '2'), ('2', '3'), ('5', '6')]