Delete duplicate tuples independent of order with

2020-05-11 00:25发布

I have a generator of tuples and I need to delete tuples containing same elements. I need this output for iterating.

Input = ((1, 1), (1, 2), (1, 3), (3, 1), (3, 2), (3, 3))

Output= ((1, 1), (1, 2), (1, 3))

Order of output doesn't matter.

I have checked this question but it is about lists: Delete duplicate tuples with same elements in nested list Python

I use generators to achieve fastest results as the data is very large.

1条回答
Anthone
2楼-- · 2020-05-11 00:55

You can normalize the data by sorting it, then add it to a set to remove duplicates

>>> 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)}
查看更多
登录 后发表回答