Одной из альтернатив является следующее:
gammagammalambda = [[[('p', 'u'), ('r', 'w')], [[[], ['q', 's'], ['t', 'v'], []]]],
[[('p', 'w'), ('r', 'u')], [[[], ['q', 's'], ['t', 'v'], []]]],
[[('r', 'u'), ('p', 'w')], [[[], ['q', 's'], ['t', 'v'], []]]],
[[('r', 'w'), ('p', 'u')], [[[], ['q', 's'], ['t', 'v'], []]]]]
d = {frozenset(e[0]) : e for e in reversed(gammagammalambda)}
result = list(d.values())
print(result)
Вывод
[[[('p', 'u'), ('r', 'w')], [[[], ['q', 's'], ['t', 'v'], []]]], [[('p', 'w'), ('r', 'u')], [[[], ['q', 's'], ['t', 'v'], []]]]]
Создать словарь, в котором ключи представляют значения, которые должны быть уникальными для каждогоключом установить в качестве значения весь элемент gammagammalambda
, наконец уникальными значениями являются значения словаря d
.
или более простой альтернативный:
gammagammalambda = [[[('p', 'u'), ('r', 'w')], [[[], ['q', 's'], ['t', 'v'], []]]],
[[('p', 'w'), ('r', 'u')], [[[], ['q', 's'], ['t', 'v'], []]]],
[[('r', 'u'), ('p', 'w')], [[[], ['q', 's'], ['t', 'v'], []]]],
[[('r', 'w'), ('p', 'u')], [[[], ['q', 's'], ['t', 'v'], []]]]]
seen = set()
result = []
for e in gammagammalambda:
key = frozenset(e[0])
if key not in seen:
result.append(e)
seen.add(key)
print(result)
Выход
[[[('p', 'u'), ('r', 'w')], [[[], ['q', 's'], ['t', 'v'], []]]], [[('p', 'w'), ('r', 'u')], [[[], ['q', 's'], ['t', 'v'], []]]]]