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 use generators to achieve fastest results as the data is very large.
解决方案
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)}