Middle
Wat zijn de beperkingen op sleutels in dict in Python?
sobes.tech AI
Antwoord van AI
In Python moeten sleutels in een woordenboek (dict) hashbare (onveranderlijke) objecten zijn. Dit betekent dat de sleutels een onveranderlijke toestand moeten hebben en de methode __hash__() moeten implementeren.
Belangrijkste beperkingen:
- Sleutels moeten ongewijzigde typen zijn, bijvoorbeeld: strings (
str), getallen (int,float), tuples (tuple), op voorwaarde dat alle elementen van de tuple ook hashbaar zijn. - Het gebruik van wijzigbare typen zoals lijsten (
list), verzamelingen (set), woordenboeken (dict) als sleutels is niet toegestaan, omdat ze niet hashbaar zijn.
Voorbeeld:
valid_dict = {
"key": 1,
42: "value",
(1, 2): "tuple key"
}
invalid_dict = {
[1, 2]: "list as key" # veroorzaakt een TypeError
}
Als je probeert een wijzigbaar object als sleutel te gebruiken, geeft Python de fout TypeError: unhashable type.