TypeError: unhashable type: ’list’

TypeError: unhashable type: ’list’ betyder vanligtvis att du försöker använda en lista som ett hashargument. Det betyder att när du försöker hash ett unhashable objekt kommer det att resultera i ett fel. För ex. när du använder en lista som en nyckel i ordlistan kan detta inte göras eftersom listor inte kan hashas. Det vanliga sättet att lösa problemet är att kasta en lista till en tupel .

 Vad är Python: TypeError: unhashable typ: 'lista'

exempel

output

detta fel visar att my_dict-tangenten är List och List inte är en hashbar typ i Python . Ordbokstangenter måste vara oföränderliga typer och listan är en föränderlig typ.

Fix: Cast lista till en tupel

du måste ändra din lista till tuples om du vill sätta dem som nycklar i din ordbok .

utgång

hash () är en inbyggd python-metod som används för att returnera ett unikt nummer . Detta kan tillämpas på alla användardefinierade objekt som inte kommer att ändras när initieras. Den här egenskapen används huvudsakligen i ordbokstangenter .

exempel på Unhashable objekt:

tupel och lista

även om tuplar kan tyckas likna listor används de ofta i olika situationer och för olika ändamål. Tuples är oföränderliga och innehåller vanligtvis en heterogen sekvens av element som nås via uppackning eller indexering . Listor är föränderliga, och deras element är vanligtvis homogena och nås genom att iterera över listan.

Python Tuple och List

Hashing

Hashing är ett begrepp inom datavetenskap som används för att skapa högpresterande , pseudo random access datastrukturer där stor mängd data ska lagras och nås snabbt. Oföränderliga objekt, eller objekt som inte kan ändras, är hashable och de har ett enda unikt värde som aldrig kommer att förändras. En hashfunktion är en funktion som tar ett objekt, säger en sträng som ”Java” och returnerar en fast storlekskod, antar att returvärdet är ett heltal .