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

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

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

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

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

3 Solutions collect form web for “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]] 
  • Достаточно ли это понимание в списках?
  • Получить длину списка в Python с помощью рекурсии
  • Получение второго-последнего элемента в списке
  • Быстро добавьте значение в список
  • Pythonic способ объединить два списка кортежей в один список dict
  • Как перенести первые N элементов из генератора или списка в Python?
  • Почему «return list.sort ()» возвращает None, а не список?
  • python group - список целых чисел, с ближайшими значениями
  • Python - лучший язык программирования в мире.