2012-05-28 9 views
5

Duplicar posibles:
Python: removing duplicates from a list of listsPython eliminar duplicados de la lista con los elementos unhashable en una línea

decir que tengo la lista

a=[1,2,1,2,1,3] 

Si todos los elementos de una son hashable (como en ese caso), esto haría el trabajo:

list(set(a)) 

Pero, ¿y si

a=[[1,2],[1,2],[1,3]] 

?

+1

Estas pueden convertirse en tuplas antes de agregarlas al conjunto. – MattH

+1

posible duplicado de [Python: eliminar duplicados de una lista de listas] (http://stackoverflow.com/questions/2213923/python-removing-duplicates-from-a-list-of-lists) http: // stackoverflow. com/questions/480214/how-do-you-remove-duplicates-from-a-list-in-python-while-preservation-order http://stackoverflow.com/questions/479897/how-do-you-remove -duplicates-from-a-list-in-python – jamylak

+0

Acaba de darse cuenta de que este es un duplicado de muchas otras preguntas, debe estar cerrado. – jamylak

Respuesta

10
>>> from itertools import groupby 
>>> a = [[1,2],[1,2],[1,3]] 
>>> [k for k,v in groupby(sorted(a))] 
[[1, 2], [1, 3]] 
0

Este conjunto de comprensión trabaja para la Lista de Listas para producir un conjunto de tuplas:

>>> {(tuple(e)) for e in a} 
set([(1, 2), (1, 3)]) 

A continuación, utilizar eso para convertirlo en una lista de listas de nuevo sin duplicados:

>>> [list(x) for x in {(tuple(e)) for e in a}] 
[[1, 2], [1, 3]] 
Cuestiones relacionadas