Поиск по сайту:

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


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

В общем, конкатенация — это процесс соединения элементов конкретной структуры данных сквозным образом.

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

  • оператор объединения (+)
  • Наивный метод
  • Понимание списка
  • метод расширения()
  • оператор ‘*’
  • метод itertools.chain()

1. Оператор конкатенации (+) для конкатенации списков

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

Пример:

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]

2. Наивный метод объединения списков

В наивном методе цикл 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]

3. Понимание списков для объединения списков

Понимание списков Python — это альтернативный метод объединения двух списков в 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]

4. Метод Python extend() для объединения списков

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

Синтаксис:

list.extend(iterable)

Пример:

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]

5. Оператор Python ‘*’ для объединения списков

Оператор Python * можно использовать для простого объединения двух списков в 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] заменяет список1 и список2 элементами в заданном порядке, т. е. элементами списка1 после элементов списка2. Это выполняет конкатенацию и приводит к приведенному ниже выводу.

Выход:

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

6. Метод Python itertools.chain() для объединения списков

Функция itertools.chain() модулей Python itertools также может использоваться для объединения списков в Python.

Функция itertools.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.