6 Способов объединения списков в Python
В данном материале, мы рассмотрим различные способы объединения нескольких списков в Python. Списки Python служат для хранения однородных элементов и выполнения манипуляций с ними.
Конкатенация - это процесс последовательного объединения элементов определенной структуры данных.
Ниже приведены 6 способов объединения списков в Python.
- Оператор объединения +
- Нативный метод
- Генераторы списка
- Метод extend()
- Оператор распаковки *
- Метод 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.
Комментарии
Для того чтобы оставить свое мнение, необходимо зарегистрироваться на сайте