- Как объединить списки в Python
- 1. Оператор (+) для конкатенации списков
- 2. Метод Naive
- 3. Concatenated list для объединения списков
- 4. Метод extend()
- 5. Оператор ‘*’
- 6. Метод Python itertools.chain()
- Как объединить два списка в Python
- Объединение списка операторов +
- Конкатенация списка с помощью распаковки
- Объединение списков операторов умножения
- Конкатенация списка в цикле for
- Объединение списков itertools.chain()
- Конкатенация списков с extension()
- Вывод
Как объединить списки в Python
В этом руководстве мы представим различные методы объединения списков в Python. Списки служат для хранения однородных элементов и выполнения над ними манипуляций.
В общем, конкатенация – это процесс соединения элементов определенной структуры данных сквозным способом.
Ниже приведены 6 способов объединения списков в Python.
- оператор конкатенации (+);
- метод Naive;
- List Comprehension;
- метод extension()
- оператор ‘*’;
- метод 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. Метод Naive
В методе Naive цикл 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. Concatenated list для объединения списков
Concatenated list в 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. Метод extend()
Метод extend() можно использовать для объединения двух списков в 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))
Все элементы list2 добавляются к list1, и, таким образом, list1 обновляется и выводится.
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 в основном распаковывает коллекцию элементов по аргументам индекса.
Например: рассмотрим список 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]
6. Метод Python itertools.chain()
Функция itertools.chain() модулей itertools также может использоваться для объединения списков в Python. Функция принимает в качестве параметров различные итерации, такие как списки, строки, кортежи и т.д., и выдает их последовательность в качестве вывода.
В результате получается линейная последовательность. Тип данных элементов не влияет на работу метода 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
Объединение списков — это процесс создания единого списка из нескольких меньших списков путем их последовательного соединения.
В Python есть много способов объединения списков. В частности, в этой статье мы рассмотрим, как объединить два списка в Python с помощью оператора плюс, оператора распаковки, оператора умножения, цикла for , itertools.chain() и extend() .
Во всех приведенных ниже фрагментах кода мы будем использовать следующие списки:
list_a = [1, 2, 3, 4] list_b = [5, 6, 7, 8]
Объединение списка операторов +
Самый простой и понятный способ объединить два списка в Python — это оператор плюс ( + ):
list_c = list_a + list_b print (list_c) # [1, 2, 3, 4, 5, 6, 7, 8]
Конкатенация списка с помощью распаковки
Этот метод позволяет объединить несколько списков. Это довольно новая функция, доступная только в Python 3.6+. Оператор распаковки, как следует из названия, распаковывает объект iterable на его элементы. Распаковка полезна, когда мы хотим сгенерировать множество аргументов из одного списка. Например:
def foo(a, b, c, d): return a + b + c + d # We want to use the arguments of the following list with the foo function. # However, foo doesn't take a list, it takes 4 numbers, which is why we need to # unpack the list. foo(*list_a) # This is the same as if we were to call foo(1,2,3,4)
Вкратце, мы используем конструктор списка ( [a,b..] ) и генерируем элементы нового списка по порядку, распаковывая несколько списков один за другим:
list_c = [*list_a, *list_b, *list_a] print (list_c) # [1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4]
Объединение списков операторов умножения
Оператор multiply( * ) — это частный случай конкатенации списков в Python. Он используется для многократного повторения всего списка (поэтому он обозначается оператором умножения):
print(list_a * 2) # [1, 2, 3, 4, 1, 2, 3, 4]
Конкатенация списка в цикле for
В этом методе мы пройдемся по одному списку, добавляя каждый его элемент в другой список один за другим. Когда цикл закончится, у вас будет единый список со всеми желаемыми элементами:
for i in list_b: list_a.append(i) print(list_a) # [1, 2, 3, 4, 5, 6, 7, 8]
Объединение списков itertools.chain()
Этот метод работает с iterables . Он создает и возвращает итератор, который позже может быть использован для построения связанного списка (представьте его как стрелку, которая просто запоминает порядок элементов в результирующем списке):
# Если бы мы вызывали itertools.chain () вот так iterator = itertools.chain([1, 2], [3, 4]) # По сути, итератор - это стрелка, которая может дать нам следующий элемент в последовательности, # поэтому, если мы вызываем конструктор list() с указанной итерацией, он работает следующим образом: list(iterator)
# Итератор: следующий элемент в этом списке - 1 [1, 2], [3, 4] ^ # Итератор: следующий элемент в этом списке - 2 [1, 2], [3, 4] ^ # Итератор: следующий элемент в этом списке - 3 [1, 2], [3, 4] ^ # Итератор: следующий элемент в этом списке - 4 [1, 2], [3, 4] ^ # Итак, вызов list() выглядит примерно так: list([1,2,3,4]) # Имейте в виду, что это все псевдокод, Python не дает разработчику прямого контроля над итератором
Для этого метода вам нужно будет импортировать itertools :
import itertools list_c = list(itertools.chain(list_a, list_b)) print (list_c) # [1, 2, 3, 4, 5, 6, 7, 8]
Конкатенация списков с extension()
Это встроенная функция, которую можно использовать для расширения списка. Здесь мы расширяем первый список, добавляя в него элементы второго списка:
list_a.extend(list_b) print (list_a) # [1, 2, 3, 4, 5, 6, 7, 8]
Вывод
В этой статье мы рассмотрели пять способов объединения двух списков в Python — с помощью оператора плюс, оператора распаковки, оператора умножения, цикла for , itertools.chain() и extend() .
Мы уже писали об объединении в предыдущей статье «Конкатенация двух списков в Python». Эта статья являться более расширенным списком методов конкатенации.