popov . dev

Главная

Библиотека

Статьи

6 Способов объед...

6 Способов объединения списков в Python

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

Конкатенация - это процесс последовательного объединения элементов определенной структуры данных.

Ниже приведены 6 способов объединения списков в Python.

  1. Оператор объединения +
  2. Нативный метод
  3. Генераторы списка
  4. Метод extend()
  5. Оператор распаковки *
  6. Метод itertools.chain()

Оператор объединения

Оператор + можно использовать для объединения двух списков. Он добавляет один список в конец другого списка и приводит к созданию нового списка в качестве выходных данных. Пример:

list1 = [10, 11, 12, 13, 14] 
list2 = [20, 30, 42] 

res = list1 + list2 

print ("Concatenated list:\n" + str(res))

Вывод:

Concatenated list:
[10, 11, 12, 13, 14, 20, 30, 42]

Нативный метод

В наивном методе для обхода второго списка используется цикл for. После этого элементы из второго списка добавляются к первому списку. Первый список получается в результате объединения первого и второго списков. Пример:

list1 = [10, 11, 12, 13, 14] 
list2 = [20, 30, 42] 

print("List1 before Concatenation:\n" + str(list1))
for x in list2 : 
    list1.append(x) 

print ("Concatenated list i.e. list1 after concatenation:\n" + str(list1))

Вывод:

List1 before Concatenation:
[10, 11, 12, 13, 14]
Concatenated list i.e. list1 after concatenation:
[10, 11, 12, 13, 14, 20, 30, 42]

Генератор списка

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

Он использует цикл for для обработки и обхода списка по элементам. Приведенный ниже встроенный цикл for эквивалентен вложенному циклу for. Пример:

list1 = [10, 11, 12, 13, 14] 
list2 = [20, 30, 42] 

res = [j for i in [list1, list2] for j in i] 

print ("Concatenated list:\n"+ str(res))
Concatenated list:
 [10, 11, 12, 13, 14, 20, 30, 42]

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

Метод extend() в Python можно использовать для объединения двух списков в Python. Функция extend() выполняет итерацию по переданному параметру и добавляет элемент в список, таким образом, линейно расширяя список. Пример:

list1 = [10, 11, 12, 13, 14] 
list2 = [20, 30, 42] 
print("list1 before concatenation:\n" + str(list1))
list1.extend(list2) 
print ("Concatenated list i.e ,ist1 after concatenation:\n"+ str(list1))

Все элементы списка 2 добавляются к списку 1, и, таким образом, список 1 обновляется и выводится в качестве выходных данных. Вывод:

list1 before concatenation:
[10, 11, 12, 13, 14]
Concatenated list i.e ,ist1 after concatenation:
[10, 11, 12, 13, 14, 20, 30, 42]

Оператор распаковки в Python

Оператор распаковки * можно использовать для простого объединения двух списков в Python. Оператор * в основном распаковывает коллекцию элементов по аргументам индекса. Например: Рассмотрим список my_list = [1, 2, 3, 4].

Оператор *my_list заменил бы список его элементами в позициях индекса. Таким образом, он распаковывает элементы списков. Пример:

list1 = [10, 11, 12, 13, 14] 
list2 = [20, 30, 42] 

res = [*list1, *list2] 
  
print ("Concatenated list:\n " + str(res))

В приведенном выше фрагменте кода оператор res = [*list1, *list2] заменяет list1 и list2 элементами в заданном порядке, т.е. элементы list1 следуют за элементами list2. Это выполняет объединение и приводит к следующему результату. Вывод:

Concatenated list:
 [10, 11, 12, 13, 14, 20, 30, 42]

Использование метода itertools.chain()

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

В результате получается линейная последовательность. Тип данных элементов не влияет на работу метода chain(). Например: выражение itertools.chain([1, 2], [‘John’, ‘Bunny’]) выдаст следующий результат: 1 2 John Bunny. Пример:

import itertools
list1 = [10, 11, 12, 13, 14] 
list2 = [20, 30, 42] 

res = list(itertools.chain(list1, list2))

print ("Concatenated list:\n " + str(res))

Вывод:

Concatenated list:
 [10, 11, 12, 13, 14, 20, 30, 42]

Заключение

Таким образом, в этой статье мы разобрались и реализовали различные способы объединения списков в Python. Данная статья была переведена по материалам из DigitalOcean.

Комментарии

Для того чтобы оставить свое мнение, необходимо зарегистрироваться на сайте