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

В Python существует множество различных способов объединения нескольких списков в Python. Давайте рассмотрим их поочередно на нескольких наглядных примерах.

Содержание

Метод 1: с помощью оператора +

Оператор + позволяет нам объединить два или более списков, создав новый список, содержащий все элементы из входных списков в Python.

Пример: представьте, что у нас есть два списка Python, и я хочу создать один список с помощью Python.

east_coast_cities = ["New York", "Boston", "Washington, D.C."]
west_coast_cities = ["Los Angeles", "San Francisco", "Seattle"]

all_major_cities = east_coast_cities + west_coast_cities
print(all_major_cities)

Вывод: оператор + объединяет два приведенных выше списка в Python для создания нового списка, как вы можете видеть ниже.

['New York', 'Boston', 'Washington, D.C.', 'Los Angeles', 'San Francisco', 'Seattle']

с помощью оператора +

Метод 2: с помощью оператора +=

Оператор += в Python можно использовать для объединения нескольких списков без создания нового списка. Он расширяет первый список Python элементами из второго списка Python.

Мы также можем использовать нарезку с оператором += для объединения нескольких списков в Python.

Сценарий 1: Мы разрабатываем программу на Python для отслеживания расходов по разным категориям. Изначально у нас есть список расходов, и мы хотим добавить в этот список расходы на еду.

accommodation_expenses = [150, 200, 180]
food_expenses = [50, 60, 70]

accommodation_expenses += food_expenses
print(accommodation_expenses)

Вывод: оператор += изменяет существующий список расходов, добавляя элементы из другого списка Python.

[150, 200, 180, 50, 60, 70]

с помощью оператора +=

Сценарий 2: Рассмотрим ситуацию, когда у нас есть отдельные списки достопримечательностей. Чтобы создать единый список Python, включающий все достопримечательности, мы хотим использовать нарезку и оператор +=.

east_coast_attractions = ["Statue of Liberty", "Washington Monument", "Walt Disney World"]
west_coast_attractions = ["Golden Gate Bridge", "Hollywood Walk of Fame", "Grand Canyon"]

all_attractions = []
all_attractions[len(all_attractions):] = east_coast_attractions
all_attractions[len(all_attractions):] = west_coast_attractions
print(all_attractions)

Вывод: в этом сценарии мы инициализируем пустой список Python, а затем используем нарезку с помощью оператора +=, чтобы добавить достопримечательности из обоих списков в один и тот же пустой список в Python.

[len(all_attractions):] — это срез, который по сути означает «от текущего конца списка до конца списка», который является пустым срезом.

['Statue of Liberty', 'Washington Monument', 'Walt Disney World', 'Golden Gate Bridge', 'Hollywood Walk of Fame', 'Grand Canyon']

Инициализация пустого списка в Python

Метод 3: с помощью метода extension()

Метод extension() используется для объединения списков Python на месте. Он добавляет все элементы из одного списка в другой, изменяя первый список в Python без создания нового.

Пример: мы создаем программу на Python, которая отслеживает густонаселенные штаты. Мы начинаем со списка некоторых состояний Python, а затем хотим добавить еще два из другого списка Python, которые будут добавлены позже.

top_states = ["California", "Texas", "Florida"]
additional_states = ["New York", "Pennsylvania"]

top_states.extend(additional_states)
print(top_states)

Вывод: метод extension() изменяет первый список Python, добавляя элементы из другого списка Python.

['California', 'Texas', 'Florida', 'New York', 'Pennsylvania']

с помощью метода extension()

Метод 4: с помощью метода add() с циклом for

Метод add() в Python используется для добавления элемента в конец списка в Python. В сочетании с циклом for он может стать мощным инструментом для объединения нескольких списков Python в один.

Пример. Давайте рассмотрим сценарий, в котором у нас есть несколько списков Python, и мы хотим создать один список из всех, используя метод Append() и цикл for:

east_coast_states = ["New York", "New Jersey", "Connecticut", "Massachusetts"]
west_coast_states = ["California", "Oregon", "Washington"]
all_us_states = []
for state in east_coast_states:
    all_us_states.append(state)

for state in west_coast_states:
    all_us_states.append(state)

print(all_us_states)

Выход: перебирая каждый элемент, присутствующий в списке Python. Мы добавляем их в наш пустой список и, наконец, получаем список на Python, содержащий все элементы из каждого списка на Python.

['New York', 'New Jersey', 'Connecticut', 'Massachusetts', 'California', 'Oregon', 'Washington']

с помощью метода add() с циклом for

Метод 5: используя понимание списка

Понимание списков — это универсальный метод создания новых списков в Python путем итерации одного или нескольких существующих списков Python. Мы можем использовать его для объединения нескольких списков, создав новый список с элементами из исходных списков.

Пример: у нас есть различные данные, хранящиеся в отдельных списках Python, и мы хотим объединить их в один список.

california_population = [39538223]
texas_population = [29145505]
new_york_population = [20330589]

state_populations = [california_population, texas_population, new_york_population]
us_population = [population for state_population in state_populations for population in state_population]
print(us_population)

Вывод: Здесь понимание списка используется для перебора списка Python, который содержит отдельные списки Python, и объединения их в один последний список.

[39538223, 29145505, 20330589]

используя понимание списка

Метод 6: с помощью оператора *

Оператор * используется для распаковки и объединения нескольких списков в Python. Этот оператор позволяет нам создать новый список Python путем распаковки элементов из входных списков.

Пример: у нас есть разные данные о продажах, хранящиеся в отдельных списках в Python, и мы хотим объединить их в один список для анализа общих продаж с помощью Python.

west_coast_sales = [35000, 42000, 38000, 41000]
midwest_sales = [28000, 32000, 29000, 31000]
east_coast_sales = [40000, 45000, 39000, 42000]
all_sales_data = [*west_coast_sales, *midwest_sales, *east_coast_sales]
print(all_sales_data)

Вывод: в этом примере оператор * используется для распаковки элементов каждого списка Python с данными о продажах и объединения их в список на Python.

[35000, 42000, 38000, 41000, 28000, 32000, 29000, 31000, 40000, 45000, 39000, 42000]

с помощью оператора *

Метод 7: с помощью itertools.chain()

Функция itertools.chain() из модуля itertools эффективно объединяет несколько списков, возвращая итератор, который возвращает элементы из каждой входной итерации. Он не создает новый список в Python.

Пример. У нас есть отдельные списки кодов городов в Python, и мы хотим создать единый список кодов городов для использования в нашей программе Python.

from itertools import chain

area_codes_state1 = ["212", "646"]
area_codes_state2 = ["310", "213"]

all_area_codes = list(chain(area_codes_state1, area_codes_state2))
print(all_area_codes)

Вывод: мы используем функцию цепочки для объединения списков в Python. Функция цепочки принимает несколько итерируемых аргументов и возвращает итератор, который создает элементы из этих итераций. Чтобы преобразовать итератор в список, мы обертываем его конструктором list().

['212', '646', '310', '213']

с помощью itertools.chain()

Заключение

Понимание того, как мы можем объединить несколько списков в Python, можно достичь с помощью нескольких методов, таких как использование оператора +, add() с циклом for, метода extension(), понимания списка, оператора *, itertools.chain() и + = Оператор отдельно или со срезами, каждый из которых имеет свои преимущества и варианты использования, которые объясняются с помощью нескольких наглядных примеров.

Добавить комментарий