data_keys=list(set(data_keys))
print data_keys
このリストの重複するキーを削除しようとしましたが、このエラーが見つかりました。'list' error !!! TypeError:unhashable type: 'list'
私はこれのための簡単な解決策を探しています。
エラーメッセージ:
data_keys=list(set(data_keys))
TypeError: unhashable type: 'list'
data_keys=list(set(data_keys))
print data_keys
このリストの重複するキーを削除しようとしましたが、このエラーが見つかりました。'list' error !!! TypeError:unhashable type: 'list'
私はこれのための簡単な解決策を探しています。
エラーメッセージ:
data_keys=list(set(data_keys))
TypeError: unhashable type: 'list'
あなたdata_list
にlist
タイプのアイテムを持っているので。 set()
は、ハッシュ可能オブジェクトでのみ使用でき、リストはハッシュ可能ではありません。この作業を行うためには
>>> data_list = [1, 2, 3] # All numbers, works fine
>>> set(data_list)
{1, 2, 3}
>>> data_list = [1, 2, 3, [1, 2, 3]] # Has `list` as an element
>>> set(data_list) # Raises `TypeError`
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'
、あなたがようtuple
にネストされたリストに変換することができます:たとえば、詳細については
>>> data_list = [1, 2, 3, (1, 2, 3)]
# ^It is `tuple` instead of `list`
>>> set(data_list) # works fine
{1, 2, 3, (1, 2, 3)}
、あなたが読むことができる:Otto's Answer to "Python: Add list to set?"
だから解決策は何でしょうか。私は長いリストを持っているので、それを見るのは難しい作業です。 –
私はすでに私の答えの最後に追加しました。 'data_list'の要素として' list'の代わりに 'tuple'を使用します。 –
そして大きなリストを' tuple(your_list) 'を使ってタプルに変換すると、' data_keys = list(set(tuple(data_keys))) ' –
をあなたは何を示すべきです'data_keys'はです。 –
明らかに 'data_keys'にはリストが含まれていますが、これはセットに入れることはできません。それとも辞書のキーとして使われていますか? – jonrsharpe