У оператора упаковки есть вторая функциональность - распаковка. Она имеет такой же синтаксис, но выполняет противоположную задачу: не сворачивает элементы, а наоборот, растягивает их. С ее помощью обычно копируют или соединяют списки.
Представьте, что нам нужно определить список, добавив туда элементы из другого списка. Такая задача часто встречается при работе со значениями по умолчанию:
# Исходные списки
french_cities = ['paris', 'marseille']
cities = ['milan', 'rome', *french_cities]
print(cities) # => ['milan', 'rome', 'paris', 'marseille']
В этом случае *
— это распаковка. Оператор растянул список, добавив все его элементы в новый список. Как понять какая функциональность используется? Все дело в контексте использования. Если *
появляется слева от знака равно, то происходит упаковка в переменные. Если *
стоит справа от знака равно, то происходит упаковка в список.
# Исходные списки
french_cities = ['paris', 'marseille']
cities = [*french_cities, 'milan', 'rome']
print(cities) # => ['paris', 'marseille', 'milan', 'rome']
french_cities = ['paris', 'marseille']
cities = ['milan', *french_cities, 'rome']
print(cities) # => ['milan', 'paris', 'marseille', 'rome']
*
работает с любым количеством списков:
# Исходные списки
french_cities = ['paris', 'marseille']
italian_cities = ['rome', 'milan']
# Объединение списков с использованием +
cities = [*french_cities, *italian_cities]
print(cities) # ['paris', 'marseille', 'rome', 'milan']
Выводы
Оператор *
, оператор упаковки-распаковки аргументов, позволяет легко добавлять элементы из одного или нескольких списков в новый список. Благодаря этому оператору, вы можете включать элементы из одного списка в любое место нового списка.
Использование *
-оператора для объединения нескольких списков упрощает этот процесс, делая его более прямолинейным. Это особенно полезно для объединения данных или создания комбинированных списков.
Остались вопросы? Задайте их в разделе «Обсуждение»
Вам ответят команда поддержки Хекслета или другие студенты
Для полного доступа к курсу нужен базовый план
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.