Pythonのリストのリストに表示されるすべての一意の値のリスト(またはセット)を作成します。私はこのようなものを持っています:
aList=[['a','b'], ['a', 'b','c'], ['a']]
そして、私は次のものが欲しいです:
unique_values=['a','b','c']
文字列のリストにはset(aList)だけを使用できることを知っていますが、set(aList)がエラーメッセージを取得するため、リストのリストでこれを解決する方法がわかりません
unhashable type: 'list'
どうすれば解決できますか?
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))
numpy.unique を使用できます。
import numpy
import operator
print numpy.unique(reduce(operator.add, [['a','b'], ['a', 'b','c'], ['a']]))
# ['a' 'b' 'c']
これを試してください。
array = [['a','b'], ['a', 'b','c'], ['a']]
res=()
for item in array:
res = list(set(res) | set(item))
print res
出力:
['a', 'c', 'b']
上位2つの回答が私にはうまくいきませんでした。なぜかわかりません(しかし、整数のリストがあります)。最後に私はこれをやっています:
unique_values = [list(x) for x in set(Tuple(x) for x in aList)]