Sobes.tech
Junior

Какви могат да бъдат ключовете в речниците в Python?

sobes.tech AI

Отговор от AI

Ключовете в речниците на Python могат да бъдат всякакви неизменяеми (hashable) обекти.

Неизменяемите типове данни включват:

  • Цели числа (int)
  • Числа с плаваща запетая (float)
  • Стрийкове (str)
  • Кортежи (tuple), съдържащи само неизменяеми елементи
  • Булеви стойности (bool)
  • NoneType (None)
  • Frozenset (frozenset), съдържащ само неизменяеми елементи

Примери за допустими ключове:

# Допустими ключове
my_dict = {
    1: "едно",
    3.14: "пи",
    "ключ": "стойност",
    (1, 2): "кортеж",
    True: "истина",
    None: "няма",
    frozenset({1, 2}): "неизменяем множест"
}

Неизменяемите обекти имат хеш, който се използва за бързо търсене в речника.

Променяемите типове данни като списъци (list), множества (set) и други речници (dict) не могат да бъдат ключове, тъй като съдържанието им може да се променя, което ще наруши целостта на хеша.

Примери за недопустими ключове:

# Недопустими ключове (ще предизвика TypeError)
# my_dict = {
#     [1, 2]: "списък",
#     {1, 2}: "множество",
#     {"a": 1}: "друг речник"
# }