TypeError: unhashable type: 'list’

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:

{1: 'one’, (2, 10): 'two’}

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:

{(1, 2), (3, 4)}

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’.



+