Obtener elementos únicos de la lista de listas?

Tengo una lista de listas que se parece a esto:

animal_groups = [['fox','monkey', 'zebra'], ['snake','elephant', 'donkey'],['beetle', 'mole', 'mouse'],['fox','monkey', 'zebra']] 

¿Qué es lo mejor para eliminar listas duplicadas? Usando el ejemplo anterior, estoy buscando un código que produzca esto:

 uniq_animal_groups = [['fox','monkey', 'zebra'], ['snake','elephant', 'donkey'],['beetle', 'mole', 'mouse']] 

Primero pensé que podía usar set() , pero esto no parece funcionar en una lista de listas. También vi un ejemplo usando itertools , pero el código no era del todo claro para mí. ¡Gracias por la ayuda!

 uniq_animal_groups = set(map(tuple, animal_groups)) 

hará el truco, aunque terminará con un conjunto de tuplas en lugar de un conjunto de listas. (Por supuesto, puede volver a convertir esto en una lista de listas, pero a menos que haya una razón específica para hacerlo, ¿para qué molestarse?)

Convierte las listas en tuplas, y luego puedes ponerlas en un conjunto.

Esencialmente:

 uniq_animal_groups = set(map(tuple, animal_groups)) 

Si prefieres que el resultado sea una lista de listas, prueba:

 uniq_animal_groups = [list(t) for t in set(map(tuple, animal_groups))] 

o:

 uniq_animal_groups = map(list, set(map(tuple, animal_groups))) 

Cuando no te importa la clasificación de las listas internas, convierte todo en conjuntos primero:

 uniq_animal_groups = map(list, set(map(tuple, map(set, animal_groups))))