Слияние списков в Python

Слияние списков в Python

Слияние списков в Python является часто используемой операцией у программистов. В данной статье рассмотрим различные методы в Python для решения этой задачи.

Введение

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

Слияние списков методом append()

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

Это можно сделать следующим образом:

list_one = [1, 3, 5, 7]
list_two = [2, 4, 6, 8]

print("Содержимое первого списка:")
print(list_one)

print("Содержимое второго списка:")
print(list_two)

list_merged = []

for i in list_one:
    list_merged.append(i)
for i in list_two:
    list_merged.append(i)

print("Объединенный список:")
print(list_merged)

Выходные данные:

Содержимое первого списка:
[1, 3, 5, 7]
Содержимое второго списка:
[2, 4, 6, 8]
Объединенный список:
[1, 3, 5, 7, 2, 4, 6, 8]

В процессе объединения списков с помощью метода append() третий список изменяется по мере добавления в него элементов из первого и второго входного списка. В то время как на первый и второй список, из которого мы извлекаем элементы для добавления в третий список, это никак не влияет.

Слияние списков методом append() и pop()

Наряду с методом append(), для объединения двух списков в Python можно использовать метод pop(). Метод pop() при вызове на любом списке удаляет последний элемент и возвращает его. Мы будем использовать метод pop() для удаления элементов из списка и будем использовать метод append() для добавления элементов в другой список. Это можно сделать следующим образом.

Использование метода append() и pop():

list_one = [1, 3, 5, 7]
list_two = [2, 4, 6, 8]

print("Содержимое первого списка:")
print(list_one)

print("Содержимое второго списка:")
print(list_two)

list_merged = []

while list_one:
    temp = list_one.pop()
    list_merged.append(temp)

while list_two:
    temp = list_two.pop()
    list_merged.append(temp)

print("Объединенный список:")
print(list_merged)

Выходные данные:

Содержимое первого списка:
[1, 3, 5, 7]
Содержимое второго списка:
[2, 4, 6, 8]
Объединенный список:
[7, 5, 3, 1, 8, 6, 4, 2]

При использовании описанного выше метода для объединения двух списков оба входных списка изменяются. Третий список изменяется по мере добавления элементов из других списков в третий список. Все элементы из первого и второго списка удаляются с помощью метода pop(), поэтому после слияния списков первый и второй список становится пустым. На выходе мы также видим, что элементы первого и второго списка появляются в обратном порядке в объединенном списке.

Слияние списков используя генератор списков

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

list_one = [1, 3, 5, 7]
list_two = [2, 4, 6, 8]

print("Содержимое первого списка:")
print(list_one)

print("Содержимое второго списка:")
print(list_two)

combined_list = [list_one, list_two]
list_merged = [i for sublist in combined_list for i in sublist]

print("Объединенный список:")
print(list_merged)

Выходные данные:

Содержимое первого списка:
[1, 3, 5, 7]
Содержимое второго списка:
[2, 4, 6, 8]
Объединенный список:
[1, 3, 5, 7, 2, 4, 6, 8]

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

Слияние списков используя оператор +

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

list_one = [1, 3, 5, 7]
list_two = [2, 4, 6, 8]

print("Содержимое первого списка:")
print(list_one)

print("Содержимое второго списка:")
print(list_two)

list_merged = list_one + list_two

print("Объединенный список:")
print(list_merged)

Выходные данные:

Содержимое первого списка:
[1, 3, 5, 7]
Содержимое второго списка:
[2, 4, 6, 8]
Объединенный список:
[1, 3, 5, 7, 2, 4, 6, 8]

Когда мы объединяем два списка с помощью оператора +, как показано в приведенной выше программе, ни один из входных списков, которые объединяются, не будет изменен.

Слияние списков используя оператор распаковки *

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

list_one = [1, 3, 5, 7]
list_two = [2, 4, 6, 8]

print("Содержимое первого списка:")
print(list_one)

print("Содержимое второго списка:")
print(list_two)

list_merged = [*list_one, *list_two]

print("Объединенный список:")
print(list_merged)

Выходные данные:

Содержимое первого списка:
[1, 3, 5, 7]
Содержимое второго списка:
[2, 4, 6, 8]
Объединенный список:
[1, 3, 5, 7, 2, 4, 6, 8]

Когда мы используем оператор распаковки для слияния двух списков, ни один из входных списков, которые объединяются, не будет изменен. Этот метод также может быть удобен для объединения трех или более списков одновременно, так как мы можем включить элементы из каждого списка в выходной объединенный список, просто упомянув каждый список с помощью operator *. Мы можем использовать оператор распаковки * для упаковки двух или более списков вместе, чтобы объединить их следующим образом.

Слияние списков методом extend()

Чтобы объединить два или более списка с помощью метода extend(), мы можем выполнить расширение первого списка на месте, добавляя в него элементы других списков следующим образом.

list_one = [1, 3, 5, 7]
list_two = [2, 4, 6, 8]

print("Содержимое первого списка:")
print(list_one)

print("Содержимое второго списка:")
print(list_two)

list_one.extend(list_two)

print("Объединенный список:")
print(list_one)

Выходные данные:

Содержимое первого списка:
[1, 3, 5, 7]
Содержимое второго списка:
[2, 4, 6, 8]
Объединенный список:
[1, 3, 5, 7, 2, 4, 6, 8]

Когда мы объединяем два списка с помощью метода extend(), список, для которого используется метод extend(), модифицируется по мере добавления в него элементов из других списков. Другие списки не затрагиваются этой операцией.

Слияние списков методом itertools.chain()

Мы также можем использовать метод itertools.chain() для объединения двух или более списков в python. Для этого мы передадим списки в качестве аргументов методу itertools.chain(), а метод вернет итерабельную таблицу, содержащую все элементы объединяемых списков, которые в дальнейшем можно преобразовать в список Это можно сделать следующим образом.

import itertools

list_one = [1, 3, 5, 7]
list_two = [2, 4, 6, 8]

print("Содержимое первого списка:")
print(list_one)

print("Содержимое второго списка:")
print(list_two)

list_merged = list(itertools.chain(list_one, list_two))

print("Объединенный список:")
print(list_merged)

Выходные данные:

Содержимое первого списка:
[1, 3, 5, 7]
Содержимое второго списка:
[2, 4, 6, 8]
Объединенный список:
[1, 3, 5, 7, 2, 4, 6, 8]

Когда мы объединяем списки с помощью метода itertools.chain(), ни один из входных списков не изменяется. Этот способ объединения списков в python может быть удобен для объединения более двух списков, поскольку нам просто нужно передать входные списки в качестве параметров методу itertools.chain().

Заключение

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

Оставайтесь с нами для получения новых информативных статей.

Егор Егоров

Программирую на Python с 2017 года. Люблю создавать контент, который помогает людям понять сложные вещи. Не представляю жизнь без непрерывного цикла обучения, спорта и чувства юмора.

Ссылка на мой github есть в шапке. Залетай.

Оцените автора
Егоров Егор
Добавить комментарий

  1. Аноним

    Спасибо)

    Ответить