Деконструкция списка, содержащего единственный элемент

Будет напечатано 1, затем []. Обязательный first получает единственный элемент, а звёздочная переменная rest собирает оставшиеся значения, которых здесь нет.

Короткий ответ

Что ответить на собеседовании

Будет напечатано 1, затем []. Обязательный first получает единственный элемент, а звёздочная переменная rest собирает оставшиеся значения, которых здесь нет.

Подробный разбор

Ответ с пояснениями

Условие

Что будет напечатано в консоль после выполнения следующего кода?

first, *rest = [1]
print(first)
print(rest)

Ответ

Будет напечатано 1, затем []. Обязательный first получает единственный элемент, а звёздочная переменная rest собирает оставшиеся значения, которых здесь нет.

Расширенная распаковка допускает пустой остаток:

1
[]

rest всегда создаётся как список, даже если исходной последовательностью был кортеж. Ошибки не возникает, потому что для единственной обязательной переменной элемент имеется. Для first, *rest = [] возник бы ValueError. Звёздочка не означает обязательное наличие хотя бы одного дополнительного элемента.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее