Je souhaite créer une liste (ou un ensemble) de toutes les valeurs uniques figurant dans une liste de listes en python .J'ai quelque chose comme ceci:
aList=[['a','b'], ['a', 'b','c'], ['a']]
et je voudrais ce qui suit:
unique_values=['a','b','c']
Je sais que pour une liste de chaînes, vous pouvez simplement utiliser set (aList), mais je ne peux pas comprendre comment résoudre ce problème dans une liste de listes, car set (aList) me renvoie le message d'erreur
unhashable type: 'list'
Comment puis-je le résoudre?
array = [['a','b'], ['a', 'b','c'], ['a']]
result = set(x for l in array for x in l)
array = [['a','b'], ['a', 'b','c'], ['a']]
unique_values = list(reduce(lambda i, j: set(i) | set(j), array))
Vous pouvez utiliser numpy.unique :
import numpy
import operator
print numpy.unique(reduce(operator.add, [['a','b'], ['a', 'b','c'], ['a']]))
# ['a' 'b' 'c']
Essayez ceci.
array = [['a','b'], ['a', 'b','c'], ['a']]
res=()
for item in array:
res = list(set(res) | set(item))
print res
Sortie:
['a', 'c', 'b']