Python elimina los duplicados de la lista con elementos no lavables en una línea

Posible duplicado:
Python: eliminando duplicados de una lista de listas

Di que tengo lista

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

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

 list(set(a)) 

Pero que si

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

?

Python 2

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

Funciona también en Python 3 pero con la advertencia de que todos los elementos deben ser de tipo ordenable.

Este conjunto de comprensión funciona para que la Lista de listas produzca un conjunto de tuplas:

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

Luego, use eso para convertirlo en una lista de listas nuevamente sin duplicados:

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