Будет выброшен TypeError: unhashable type: 'list'. Кортеж можно хешировать только тогда, когда хешируемы все его элементы; вложенный список этому условию не соответствует.
Какой результат выведет программа при вычислении хеша кортежа
Будет выброшен TypeError: unhashable type: 'list'. Кортеж можно хешировать только тогда, когда хешируемы все его элементы; вложенный список этому условию не соответствует.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Определите, какое значение будет напечатано после выполнения следующей программы. Обратите внимание, что в качестве аргумента функции hash используется кортеж, содержащий список и строку.
pair = ([1, 2, 3], 'asdsad')
print(hash(pair))
Ответ
Будет выброшен TypeError: unhashable type: 'list'. Кортеж можно хешировать только тогда, когда хешируемы все его элементы; вложенный список этому условию не соответствует.
Ошибка возникает при вычислении hash(pair) до вызова print, поэтому числовой хеш не выводится. Неизменяемость внешнего контейнера не делает список внутри неизменяемым. Если смысл данных допускает замену списка на кортеж, ((1, 2, 3), 'asdsad') будет хешируемым. Конкретное числовое значение его хеша не следует фиксировать между запусками: строковые хеши могут быть рандомизированы.