v tomto příspěvku uvidíme asi TypeError: unhashable type: 'list'
.
dostanete tuto chybu, když se pokoušíte dát list
jako klíč do dictionary
nebo set
, protože seznam je nemytelný objekt.TypeError: unhashable type
je obecně zvýšena při pokusu o hash objekt, který je unhashable.
podívejme se na to pomocí příkladu:
Python
1
2
3
4
|
dict1 ={ 1:’jedna‘, :’dvě‘}
print(dict1)
|
Výstup:
tento problém lze vyřešit litím seznam do n-tice. Vzhledem k tomu, n-tice je neměnný objekt, může být použit jako klíč ve slovníku.
Python
1
2
3
4
|
dict1 ={ 1:’jedna‘, n-tice():’dvě‘}
print(dict1)
|
Výstup:
Jak můžete vidět, jakmile jsme se použít tuple() funkce, program pracoval dobře.
podívejme se na další příklad se sadou.
Python
1
2
3
4
|
set1={,}
print(set1)
|
Výstup:
tento problém lze vyřešit litím seznam do n-tice. Vzhledem k tomu, tuple
je neměnný objekt, může být použit jako klíč ve slovníku.
Python
1
2
3
4
|
set1={tuple(),n-tice()}
print(set1)
|
Výstup:
Jak můžete vidět, jakmile jsme se použít tuple()
funkce, program pracoval dobře.
co jsou Hashovatelné objekty?
hashování je metoda kódování dat do hodnoty int s pevnou velikostí. Obecně se používá k návrhu vysoce výkonné datové struktury.
Hashable objektu v Pythonu
int | float | desetinné číslo, | bool | string | tuple | komplexní | rozsah | frozenset | bajtů |
Non Hashable objektu v Pythonu
seznam | nastavit | dict | bytearray | vlastní třídy |
to je vše, o TypeError: unhashable typu: „seznam“.