使用生成器Python 3.5中的相同元素删除与顺序无关的重复元组

时间:2016-11-28 18:15:54

标签: tuples generator python-3.5

我有一个元组生成器,我需要删除包含相同元素的元组。我需要这个输出来进行迭代。

输入=((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)

1 个答案:

答案 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)}