Вы можете применить sorted
, а затем tuple
с последующим преобразованием в set
:
res = set(map(tuple, map(sorted, L)))
print(res)
{(1, 2), (1, 3)}
Пояснение
Есть несколько веских причин, по которым вам не следует конвертировать каждый кортеж в set
в качестве начального шага:
- Кортежи
(1, 1, 2)
и (1, 2)
станут равными после преобразования в set
.
- Даже в случае, когда мы рассматриваем кортежи длины 2, мы бы добавили предположение, что
tuple({(1, 2)})
и tuple({(2, 1)})
равны. Хотя это может быть правдой, это будет считаться деталями реализации, поскольку set
считается неупорядоченным.
Состав функции
Композиция функций не является родной для Python, но если у вас есть доступ к сторонней библиотеке toolz
, вы можете избежать вложенности map
:
from toolz import compose
tup_sort = compose(tuple, sorted)
res = set(map(tup_sort, L))