Middle
Какви ограничения има за ключовете в dict в Python?
sobes.tech AI
Отговор от AI
В Python ключовете в речник (dict) трябва да бъдат хешируеми (непроменяеми) обекти. Това означава, че ключовете трябва да имат неизменяемо състояние и да реализират метода __hash__().
Основни ограничения:
- Ключовете трябва да бъдат непроменяеми типове, например: низове (
str), числа (int,float), кортежи (tuple), при условие, че всички елементи на кортежа също са хешируеми. - Не може да се използват променяеми типове като списъци (
list), множества (set), речници (dict) като ключове, тъй като те не са хешируеми.
Пример:
valid_dict = {
"key": 1,
42: "value",
(1, 2): "tuple key"
}
invalid_dict = {
[1, 2]: "list as key" # ще предизвика TypeError
}
Ако се опитате да използвате променяем обект като ключ, Python ще върне грешка TypeError: unhashable type.