У оператора упаковки есть вторая функциональность - распаковка. Она имеет такой же синтаксис, но выполняет противоположную задачу: не сворачивает элементы, а наоборот, растягивает их. С ее помощью обычно копируют или соединяют списки.
Представьте, что нам нужно определить список, добавив туда элементы из другого списка. Такая задача часто встречается при работе со значениями по умолчанию:
# Исходные списки
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']
Выводы
Оператор *, оператор упаковки-распаковки аргументов, позволяет легко добавлять элементы из одного или нескольких списков в новый список. Благодаря этому оператору, вы можете включать элементы из одного списка в любое место нового списка.
Использование *-оператора для объединения нескольких списков упрощает этот процесс, делая его более прямолинейным. Это особенно полезно для объединения данных или создания комбинированных списков.
Для полного доступа к курсу нужен базовый план
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.