Python: удалить повторяющиеся элементы из вложенного списка.

list=[[1,2],[4,5],[3,4],[4,3],[2,1],[1,2]] 

Я хочу удалить повторяющиеся элементы, дублированные элементы можно отменить. Результат должен быть:

 list=[[1,2],[4,5],[3,4]] 

Как достичь этого в Python?

Если в Приложении вы всегда можете использовать OrderedDict

 >>> unq_lst = OrderedDict() >>> for e in lst: unq_lst.setdefault(frozenset(e),[]).append(e) >>> map(list, unq_lst.keys()) [[1, 2], [4, 5], [3, 4]] 
 lst=[[1,2],[4,5],[3,4],[4,3],[2,1],[1,2]] fset = set(frozenset(x) for x in lst) lst = [list(x) for x in fset] 

Это не сохранит порядок из вашего первоначального списка и не сохранит порядок ваших подсписок.

 >>> lst=[[1,2],[4,5],[3,4],[4,3],[2,1],[1,2]] >>> fset = set(frozenset(x) for x in lst) >>> lst = [list(x) for x in fset] >>> lst [[1, 2], [3, 4], [4, 5]] 

Другой способ, без использования OrderedDict , frozenset , set и map .

 lst = [[1, 2], [4, 5], [3, 4], [4, 3], [2, 1], [1, 2]] unique = [] for item in lst: if sorted(item) not in unique: unique.append(sorted(item)) print(unique) [[1, 2], [4, 5], [3, 4]]