TypeError: unshashable type: ‘list’

TypeError: unshashable type: ‘list’ betyder normalt, at du forsøger at bruge en liste som et hash-argument. Dette betyder, at når du prøver at hash et uhåndterligt objekt, vil det resultere i en fejl. For eks. når du bruger en liste som en nøgle i ordbogen , kan dette ikke gøres, fordi lister ikke kan hashes. Standardmetoden til at løse dette problem er at kaste en liste til en tupel .

Hvad er Python: TypeError: unshashable type: 'liste'

eksempel

udgang

denne fejl viser, at my_dict-tasten er liste, og listen er ikke en hashbar type i Python . Ordbog nøgler skal være uforanderlige typer og listen er en foranderlig type.

rettelse: Cast liste til en tupel

du bliver nødt til at ændre din liste til tupler, hvis du vil sætte dem som nøgler i din ordbog .

output

hash() er en indbygget python-metode, der bruges til at returnere et unikt nummer . Dette kan anvendes til enhver brugerdefineret objekt, som ikke vil blive ændret, når initialiseret. Denne egenskab bruges hovedsageligt i ordbogstaster .

eksempler på uhåndterlige objekter:

Tuple og liste

selvom tupler kan synes ligner lister, bruges de ofte i forskellige situationer og til forskellige formål. Tupler er uforanderlige og indeholder normalt en heterogen sekvens af elementer , der fås adgang til via udpakning eller indeksering . Lister kan ændres, og deres elementer er normalt homogene og fås ved at gentage over listen.

 Python Tuple and List

Hashing

Hashing er et koncept inden for datalogi , der bruges til at skabe højtydende, pseudo tilfældige adgangsdatastrukturer, hvor store mængder data skal gemmes og åbnes hurtigt. Uforanderlige objekter eller objekter, der ikke kan ændres, er hashable, og de har en enkelt unik værdi, der aldrig vil ændre sig. En hashing-funktion er en funktion, der tager et objekt, siger en streng som “Java” og returnerer en kode med fast størrelse, antager, at returværdien er et heltal .