TypeError: unhashable type:’list’
TypeError: unhashable type: ‘list’ betyr vanligvis at du prøver å bruke en liste som et hash-argument. Dette betyr at når du prøver å hash et unhashable objekt, vil det føre til en feil. For eks. når du bruker en liste som en nøkkel i ordlisten , kan dette ikke gjøres fordi lister ikke kan hashes. Den vanlige måten å løse dette problemet på er å kaste en liste til en tuple .
eksempel
utgang
denne feilen viser at my_dict-nøkkelen Er Liste og Liste ikke er en hashbar type I Python . Ordbok nøkler må være uforanderlige typer og listen er en foranderlig type.
Fix: Cast list til en tuple
Du må endre listen til tuples hvis du vil sette dem som nøkler i ordboken din .
utgang
hash () er en innebygd python-metode som brukes til å returnere et unikt nummer . Dette kan brukes på alle brukerdefinerte objekt som ikke vil bli endret når initialisert. Denne egenskapen brukes hovedsakelig i ordboksnøkler .
Eksempler På Unhashable objekter:
Tuple Og List
selv om tupler kan virke som lister, brukes de ofte i forskjellige situasjoner og til forskjellige formål. Tuples er uforanderlige, og inneholder vanligvis en heterogen sekvens av elementer som nås via utpakking eller indeksering . Lister er foranderlige, og deres elementer er vanligvis homogene og nås ved å iterere over listen.
Hashing
Hashing er et konsept i informatikk som brukes til å lage høy ytelse , pseudo random access datastrukturer der store mengder data skal lagres og nås raskt. Uforanderlige objekter, eller objekter som ikke kan endres, er hashable og de har en enkelt unik verdi som aldri vil forandre seg. En hashing-funksjon er en funksjon som tar et objekt, si en streng som «Java» og returnerer en kode med fast størrelse, anta at returverdien er et heltall .