Sobes.tech
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.