Python: ¿Cómo eliminar listas duplicadas en una lista de listas?

Quiero eliminar todas las listas de duplicados de una lista de listas.

Así que tengo una lista de listas como esta.

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

Quiero tener:

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

No se hacer

Gracias

Podrías usar un set:

 b_set = set(map(tuple,a)) #need to convert the inner lists to tuples so they are hashable b = map(list,b_set) #Now convert tuples back into lists (maybe unnecessary?) 

O, si prefieres enumerar las comprensiones / generadores:

 b_set = set(tuple(x) for x in a) b = [ list(x) for x in b_set ] 

Finalmente, si el orden es importante, siempre puedes ordenar b:

 b.sort(key = lambda x: a.index(x) ) 

Vea la respuesta de mgilson si el orden de las listas no es importante. Si quieres conservar el orden, haz algo como:

 b = list() for sublist in a: if sublist not in b: b.append(sublist) 

Esto mantendrá el orden en la lista original. Sin embargo, es más lento y más detallado que el uso de conjuntos.