我有一个元组生成器,我需要删除包含相同元素的元组。我需要这个输出来进行迭代。
输入=((1,1),(1,2),(1,3),(3,1),(3,2),(3,3))
输出=((1,1),(1,2),(1,3))输出顺序无关紧要
我已经检查了这个问题,但它是关于列表:Delete duplicate tuples with same elements in nested list Python
我使用生成器来获得最快的结果,因为数据非常大。
编辑: 除了接受的答案,我还发现我可以使用itertools组合方法。
unique_combinations = itertools.combinations(Input, 2)
答案 0 :(得分:3)
您可以通过对数据进行排序来规范化数据,然后将其添加到集合中以删除重复数据
>>> Input = ((1, 1), (1, 2), (1, 3), (3, 1), (3, 2), (3, 3))
>>> Output = set(tuple(sorted(t)) for t in Input)
>>> Output
{(1, 2), (1, 3), (2, 3), (1, 1), (3, 3)}