Создание dict1 выбросит TypeError: unhashable type: 'list': внутри ключа-кортежа есть список. Отдельное выражение var = 1, создаёт одноэлементный tuple, а не int.
dict1 = {(1,2, [3,4]): 0}
Создание dict1 выбросит TypeError: unhashable type: 'list': внутри ключа-кортежа есть список. Отдельное выражение var = 1, создаёт одноэлементный tuple, а не int.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
dict1 = {(1,2, [3,4]): 0}
var = 1,
Ответ
Создание dict1 выбросит TypeError: unhashable type: 'list': внутри ключа-кортежа есть список. Отдельное выражение var = 1, создаёт одноэлементный tuple, а не int.
Кортеж пригоден как ключ лишь тогда, когда все его элементы хешируемы. Исправленный пример:
dict1 = {(1, 2, (3, 4)): 0}
var = 1,
print(var) # (1,)
print(type(var)) # <class 'tuple'>
Если исходные строки выполняются подряд без обработки исключения, до присваивания var программа не дойдёт. Кортеж в Python создаёт запятая; скобки лишь помогают группировать выражения.