TypeError:unhashable type:’list’
TypeError:unhashable type:’list’は、通常、ハッシュ引数としてリストを使用しようとしていることを意味します。 これは、ハッシュ不可能なオブジェクトをハッシュしようとすると、エラーが発生することを意味します。 Exのために。 辞書のキーとしてリストを使用する場合、リストはハッシュできないため、これを行うことはできません。 この問題を解決する標準的な方法は、リストをタプルにキャストすることです。
例
出力
このエラーは、my_dictキーがListであり、Listがpythonのハッシュ可能な型ではないことを示しています。 辞書キーは不変型でなければならず、listは変更可能な型でなければなりません。
修正:タプルにリストをキャスト
あなたはあなたの辞書のキーとしてそれらを入れたい場合は、タプルにあなたのリストを変更する必要があります。
出力
hash()は組み込みのpythonメソッドで、一意の数値を返すために使用されます。 これは、一度初期化されると変更されない任意のユーザー定義オブジェクトに適用できます。 このプロパティは、主に辞書キーで使用されます。
ハッシュ不可能なオブジェクトの例:
タプルとリスト
タプルはリストに似ているように見えるかもしれませんが、さまざまな状況や目的 タプルは不変であり、通常、展開またはインデックス付けを介してアクセスされる異種の要素のシーケンスを含みます。 リストは変更可能であり、その要素は通常同種であり、リストを反復することによってアクセスされます。
ハッシュ
ハッシュは、大量のデータを迅速に格納してアクセスする高性能の擬似ランダムアクセスデータ構造を作成するために使用されるコンピュータサイエンスの概念です。 不変オブジェクト、または変更できないオブジェクトはハッシュ可能であり、変更されない単一の一意の値を持ちます。 ハッシュ関数は、オブジェクト、たとえば”Java”などの文字列を受け取り、固定サイズのコードを返す関数で、戻り値が整数であると仮定します。