Это потому, что 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)]