Объединение нескольких списков в Python — распространенная задача, когда вам нужно объединить элементы двух или более списков в один список.
В Python существует множество различных способов объединения нескольких списков в Python. Давайте рассмотрим их поочередно на нескольких наглядных примерах.
- Метод 1: с помощью оператора +
- Метод 2: с помощью оператора +=
- Метод 3: с помощью метода extension()
- Метод 4: с помощью метода add() с циклом for
- Метод 5: используя понимание списка
- Метод 6: с помощью оператора *
- Метод 7: с помощью itertools.chain()
- Заключение
Метод 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']
Метод 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']
Метод 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']
Метод 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']
Заключение
Понимание того, как мы можем объединить несколько списков в Python, можно достичь с помощью нескольких методов, таких как использование оператора +, add() с циклом for, метода extension(), понимания списка, оператора *, itertools.chain() и + = Оператор отдельно или со срезами, каждый из которых имеет свои преимущества и варианты использования, которые объясняются с помощью нескольких наглядных примеров.