【问题标题】:How to remove duplicate combinations tuples from python list?如何从 python 列表中删除重复的组合元组?
【发布时间】:2020-05-31 01:18:08
【问题描述】:

我有一个包含如下元组的列表:

mylist = [(1, 2),(1, 3),(2, 1),(2, 3),(3, 1),(3, 2),(3, 3)]

预期(唯一组合)

[(1, 2),(1, 3),(2, 3),(3, 3)]

我在下面尝试过

mylist = list(set(map(tuple, mylist)))

但是没有得到想要的输出。这里有什么帮助吗?

【问题讨论】:

  • 你得到了什么结果得到了
  • 您的输出是[(1, 2), (2, 1), (3, 1), (2, 3), (3, 3), (3, 2), (1, 3)],这是正确的。你没有考虑(2,1),但它不是重复的,与(1,2)不同
  • 你是怎么得到mylist的?
  • 一开始不产生重复比之后明确删除它们要好。

标签: python python-3.x list duplicates set


【解决方案1】:

你可以试试这个。

out=list(set(map(tuple,map(sorted,mylist))))

【讨论】:

    【解决方案2】:

    那是因为 Tuple (1, 2)Tuple (2, 1) 不同

    print((1, 2) == (1, 2))
    print((1, 2) == (2, 1))
    
    True
    False
    

    你可以看到它:

    my_set = set()
    
    my_set.add((1, 2))
    my_set.add((1, 2))
    my_set.add((2, 1))
    
    print(my_set)
    
    {(1, 2), (2, 1)}
    

    因此,在您的情况下,您可以对您的tuples 进行排序,因此(1, 2)(2, 1) 将是相同的,并且该集合将完成您的工作

    mylist = [(1, 2), (1, 3), (2, 1), (2, 3), (3, 1), (3, 2), (3, 3)]
    
    mylist = [sorted(item) for item in mylist]
    
    mylist = list(set(map(tuple, mylist)))
    
    print(mylist)
    
    [(1, 2), (1, 3), (2, 3), (3, 3)]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-20
      • 2018-12-25
      • 2018-10-17
      相关资源
      最近更新 更多