Obtener valores únicos en la lista de listas en python

Quiero crear una lista (o conjunto) de todos los valores únicos que aparecen en una lista de listas en python. Tengo algo como esto:

aList=[['a','b'], ['a', 'b','c'], ['a']] 

y me gustaría lo siguiente:

 unique_values=['a','b','c'] 

Sé que para una lista de cadenas solo puede usar set (aList), pero no puedo resolver cómo resolver esto en una lista de listas, ya que set (aList) me muestra el mensaje de error

 unhashable type: 'list' 

¿Cómo puedo resolverlo?

 array = [['a','b'], ['a', 'b','c'], ['a']] result = set(x for l in array for x in l) 

Puede usar la chain itertools para aplanar su matriz y luego set en ella:

 from itertools import chain array = [['a','b'], ['a', 'b','c'], ['a']] print set(chain(*array)) 

Si está esperando un objeto de list :

 print list(set(chain(*array))) 
 array = [['a','b'], ['a', 'b','c'], ['a']] unique_values = list(reduce(lambda i, j: set(i) | set(j), array)) 

Puedes usar numpy.unique :

 import numpy import operator print numpy.unique(reduce(operator.add, [['a','b'], ['a', 'b','c'], ['a']])) # ['a' 'b' 'c'] 

Intenta esto.

 array = [['a','b'], ['a', 'b','c'], ['a']] res=() for item in array: res = list(set(res) | set(item)) print res 

Salida:

 ['a', 'c', 'b']