Как распаковать список в Python

В этой статье о Python я объясню, как распаковать список в Python. Я покажу различные варианты использования распаковки списка в Python.

Чтобы распаковать список в Python, напрямую присвойте элементы списка переменным (например, a, b, c = [1, 2, 3]), используйте оператор звездочки для списков переменной длины (например, first, rest = [1, 2, 3, 4]), перебирать списки с помощью цикла for (for x in my_list:) и передавать элементы списка в качестве аргументов функции, используя звездочку (например, my_function(my_list)). Эти методы обеспечивают эффективную и гибкую обработку элементов списка в различных сценариях.

Распаковать список в Python

Распаковка списка в Python — универсальный и эффективный способ присвоить элементы списка переменным. Эта особенность Python упрощает код и повышает читаемость.

Методы распаковки списка в Python

Распаковка списка позволяет нам присваивать элементы списка различным переменным в одном операторе. Эта функция полезна в различных сценариях, таких как:

  • Распаковать список в переменные
  • Использование оператора звездочек (\*)
  • Использование подчеркивания (\_)
  • Распаковать вложенный список
  • Использование цикла for
  • Как аргумент функции

Давайте рассмотрим их один за другим, используя несколько наглядных примеров:

Способ 1: распаковка списка Python в переменные

В самой простой форме мы можем распаковать список в Python, назначив его элементы отдельным переменным.

coordinates = [40.6892, -74.0445]
latitude, longitude = coordinates
print(f"Latitude: {latitude}, Longitude: {longitude}")

Вывод: здесь переменным присваиваются значения соответственно в Python.

Latitude: 40.6892, Longitude: -74.0445

Таким образом, мы можем распаковать список в Python, присвоив значения переменным.

Способ 2: распаковка списка в Python с помощью оператора звездочек (*)

Иногда мы можем не знать длину списка или список длиннее, чем количество имеющихся у нас переменных. В таких случаях Python допускает расширенную распаковку с помощью оператора звездочки *.

cities = ["New York", "Los Angeles", "Chicago", "Houston", "Phoenix"]
most_populated, *others = cities
print(f"Most populated: {most_populated}, Others: {others}")

Вывод: первой переменной присваивается первый элемент, а вторая переменная становится списком, содержащим остальные элементы.

Most populated: New York, Others: ['Los Angeles', 'Chicago', 'Houston', 'Phoenix']

Оператор звездочки может распаковать список в Python.

Способ 3. Распаковка в списке Python с помощью подчеркивания (_)

Если нам нужны только определенные элементы списка, мы можем распаковать их выборочно, используя знак подчеркивания _ в качестве заполнителя для игнорируемых элементов в Python.

apollo11_dates = ["July 16, 1969", "July 20, 1969", "July 24, 1969"]
launch, _, landing = apollo11_dates
print(f"Launch: {launch}, Moon Landing: {landing}")

Вывод: Здесь средние элементы будут игнорироваться.

Launch: July 16, 1969, Moon Landing: July 24, 1969

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

Способ 4: распаковать вложенный список в Python

Python также поддерживает вложенную распаковку, что полезно при работе со списками списков или аналогичными структурами данных.

states_and_capitals = [["California", "Sacramento"], ["Texas", "Austin"]]
(california, sacramento), (texas, austin) = states_and_capitals
print(f"{california}: {sacramento}, {texas}: {austin}")

Вывод: это снова назначение переменных для распаковки списка в Python.

California: Sacramento, Texas: Austin

Таким образом мы можем распаковать список списков в Python.

Способ 5: список распаковки Python в цикле for

Распаковку списка в Python можно комбинировать с циклами для перебора списков кортежей или списков и их распаковки.

landmarks = [("Statue of Liberty", "New York"), ("Golden Gate Bridge", "San Francisco")]
for landmark, city in landmarks:
    print(f"The {landmark} is located in {city}.")

Вывод: здесь доступ к каждому элементу осуществляется с помощью цикла for в Python.

The Statue of Liberty is located in New York.
The Golden Gate Bridge is located in San Francisco.

Таким образом, мы можем использовать цикл for для распаковки списка в Python.

Способ 6: вызов функции распаковки списка Python

Распаковка не ограничивается только присвоением переменных. Мы можем распаковать список в Python непосредственно в аргументы функции.

def display_date(day, month, year):
    print(f"Independence Day: {month} {day}, {year}")

independence_day = [4, "July", 1776]
display_date(*independence_day)

Вывод: здесь мы просто передаем список с помощью оператора звездочки в качестве аргументов функции в Python.

Independence Day: July 4, 1776

Таким образом, мы можем распаковать список Python как аргументы функции.