📌 Какие переменные (типы данных) можно использовать в качестве ключей в словаре Питон ?



💬 Спрашивают в 14% собеседований



Словари (dictionaries) — это структуры данных, которые хранят пары "ключ-значение". Ключи в словаре должны быть уникальными и неизменяемыми (immutable).



Типы данных, которые можно использовать в качестве ключей



1️⃣ Числа (integers, floats, complex numbers)



Целые числа (integers)



Вещественные числа (floats)



Комплексные числа (complex numbers)



      my_dict = {1: "one", 3.14: "pi", 2+3j: "complex"}





2️⃣ Строки (strings)



Строки (strings) неизменяемы и часто используются в качестве ключей.



      my_dict = {"name": "Alice", "age": 30}





3️⃣ Кортежи (tuples)



Кортежи неизменяемы, поэтому их можно использовать в качестве ключей. Однако все элементы кортежа также должны быть неизменяемыми.



      my_dict = {(1, 2): "point", (3, 4): "another point"}





4️⃣ Булевы значения (booleans)



Булевы значения (True, False) также являются допустимыми ключами.



      my_dict = {True: "yes", False: "no"}





Типы данных, которые нельзя использовать в качестве ключей



1️⃣ Списки (lists)



Списки изменяемы, поэтому их нельзя использовать в качестве ключей.



      my_dict = {[1, 2, 3]: "list"}  # Это вызовет ошибку TypeError





2️⃣ Множества (sets)



Множества также изменяемы и не могут быть ключами в словаре.



      my_dict = {{"a", "b"}: "set"}  # Это вызовет ошибку TypeError





3️⃣ Другие словари (dictionaries)



Словари изменяемы, поэтому их тоже нельзя использовать в качестве ключей.



      my_dict = {{1: "one"}: "dict"}  # Это вызовет ошибку TypeError





Пример

# Корректные ключи

valid_dict = {

1: "integer",

3.14: "float",

(1, 2): "tuple",

"key": "string",

True: "boolean",

}



print(valid_dict)



# Некорректные ключи

try:

invalid_dict = {

[1, 2, 3]: "list",

{"a", "b"}: "set",

{1: "one"}: "dict"

}

except TypeError as e:

print(f"Ошибка: {e}")




В качестве ключей в словаре можно использовать любые неизменяемые типы данных:



Числа (integers, floats, complex numbers)



Строки (strings)



Кортежи (tuples)



Булевы значения (booleans)



Нельзя использовать изменяемые типы данных, такие как списки, множества и словари. Убедитесь, что все элементы кортежа, если он используется в качестве ключа, также неизменяемы.



🔥 ТОП ВОПРОСОВ С СОБЕСОВ



🔒 База собесов | 🔒 База тестовых