Применение * при распаковке последовательности

Сначала будет напечатано 1, затем [2, 3]. Переменная a получает первый элемент, а звёздочная переменная b собирает оставшиеся элементы в новый список.

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

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

Сначала будет напечатано 1, затем [2, 3]. Переменная a получает первый элемент, а звёздочная переменная b собирает оставшиеся элементы в новый список.

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

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

Условие

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

a, *b = [1, 2, 3]
print(a)
print(b)

Ответ

Сначала будет напечатано 1, затем [2, 3]. Переменная a получает первый элемент, а звёздочная переменная b собирает оставшиеся элементы в новый список.

Расширенная распаковка позволяет одной переменной принять произвольное количество оставшихся значений:

1
[2, 3]

Даже при распаковке кортежа b будет списком. Для a, *b = [1] переменная b получила бы []; для пустого входа возникнет ValueError, поскольку обязательному a не хватает элемента. Звёздочная цель в таком присваивании может быть только одна.

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

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

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

Подробнее