Python: Списки

Теория: Создание новых списков и оператор распаковки

У оператора упаковки есть вторая функциональность - распаковка. Она имеет такой же синтаксис, но выполняет противоположную задачу: не сворачивает элементы, а наоборот, растягивает их. С ее помощью обычно копируют или соединяют списки.

Представьте, что нам нужно определить список, добавив туда элементы из другого списка. Такая задача часто встречается при работе со значениями по умолчанию:

# Исходные списки
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']

Выводы

Оператор *, оператор упаковки-распаковки аргументов, позволяет легко добавлять элементы из одного или нескольких списков в новый список. Благодаря этому оператору, вы можете включать элементы из одного списка в любое место нового списка.

Использование *-оператора для объединения нескольких списков упрощает этот процесс, делая его более прямолинейным. Это особенно полезно для объединения данных или создания комбинированных списков.

Рекомендуемые программы