Встречается на собеседованиях • сегодня

Почему список не может быть ключом словаря в Python

В Python ключом словаря может быть только хешируемый (неизменяемый) объект. Списки изменяемы (мутабельны), поэтому их хеш может измениться после добавления в словарь, что нарушит работу словаря.

Пример:

python
d = {}
key = [1, 2]
d[key] = 'value'  # TypeError: unhashable type: 'list'

Альтернативы:

  1. Использовать кортеж (если элементы неизменяемы)
  2. Преобразовать список в строку
  3. Использовать frozenset для множеств

Пример с кортежем:

python
d = {}
key = (1, 2)  # кортеж вместо списка
d[key] = 'value'  # работает
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы