w tym poście zobaczymy o TypeError: unhashable type: 'list'
.
ten błąd pojawi się, gdy próbujesz umieścić list
jako klucz w dictionary
lub set
, ponieważ lista jest obiektem nieosiągalnym.TypeError: unhashable type
jest na ogół wywoływana, gdy próbujesz hashować obiekt, który jest niehaszowalny.
zobaczmy to z pomocą przykładu:
Python
1
2
3
4
|
dict1 = {1:’one’, :’two’}
print (dict1)
|
wyjście:
możesz rozwiązać ten problem, odlewając listę do krotki. Ponieważ krotka jest obiektem niezmiennym, może być używana jako klucz w słowniku.
Python
1
2
3
4
|
dict1 ={ 1: 'one’, krotka ():’ two’}
print (dict1)
|
wyjście:
jak widać, gdy użyjemy funkcji tuple (), program działał poprawnie.
zobaczmy inny przykład z zestawem.
Python
1
2
3
4
|
set1={,}
print (set1)
|
wyjście:
możesz rozwiązać ten problem, odlewając listę do krotki. Ponieważ tuple
jest obiektem niezmiennym, może być użyty jako klucz w słowniku.
Python
1
2
3
4
|
set1 = {tuple(),tuple()}
print (set1)
|
wyjście:
jak widać, po użyciu funkcji tuple()
program działał dobrze.
czym są obiekty Haszowalne?
hashowanie jest metodą kodowania danych do wartości int o stałej wielkości. Jest on powszechnie używany do projektowania wysokiej wydajności struktury danych.
obiekt Hashable w Pythonie
int | float | decimal | bool | string | tuple | complex | range | frozenset | bytes |
obiekt Non Hashable w Pythonie
list | set | dict | bytearray | niestandardowe klasy |
to wszystko o TypeError: unhashable type: 'list’.