Перейти к содержимому

Как сложить элементы двух списков в python

  • автор:

Как объединить два списка в 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». Эта статья являться более расширенным списком методов конкатенации.

Слияние списков в 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, чтобы сделать программы более надежными и систематически обрабатывать ошибки.

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

8 методов для сложения и объединения списков в Python

В этой теме мы обсудим методы для сложения и объединения двух или более списков с разными функциями в Python. Прежде чем перейти к рассмотрению концепций, давайте кратко познакомимся со списком Python. Список Python — это набор нескольких элементов, сгруппированных под одним именем. Он может хранить элементы данных различных типов (целые, строковые, с плавающей запятой и т. д.) внутри квадратных скобок [], разделенных запятой(,).

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

Программа для печати списка Python

# list of characters List1 = ['A', 'B', 'C', 'D', 'E'] # list of integers List2 = [1, 2, 3, 4, 5,] # mixed lists List3 = ['A', 1, 'C', 'E', 5, 8] print(" Display the List1 ", List1) print(" Display the List2 ", List2) print(" Display the List3 ", List3)
Display the List1 ['A', 'B', 'C', 'D', 'E'] Display the List2 [1, 2, 3, 4, 5] Display the List3 ['A', 1, 'C', 'E', 5, 8]

Когда мы объединяем два или более списков вместе в программе Python, получается объединенный список. И этот процесс называется составлением или объединением списков.

Давайте обсудим различные способы объединения двух или более списков в Python:

  • Объединяйте списки в Python с помощью функции join() и разделителей.
  • Присоединяйтесь к списку с помощью функции join() без разделителей.
  • Присоединяйтесь к списку двух целых чисел в Python с помощью функции map().
  • Объедините два списка в Python, используя цикл for и функцию append().
  • Объедините несколько списков с помощью метода itertools.chain().
  • Соединяйте списки с помощью оператора(+).
  • Соедините два списка в Python с помощью оператора умножения(*).
  • Объедините списки с помощью функции extend().

Объединение списков с помощью функции join()

Функция join() используется для присоединения повторяющегося списка к другому списку, разделенному указанными разделителями, такими как запятая, символы, дефис и т. д.

str_name.join( iterable)

str_name: это имя разделителя, разделяющего повторяющийся список.

iterable: это список, который содержит набор элементов и объединяется с разделителем.

Возвращаемое значение: возвращает объединенный список, разделенный указанными разделителями.

Примечание. Если итерируемый список содержит какие-либо нестроковые значения или элементы, он вызывает исключение TypeError.

Программа для объединения двух списков с помощью функции join() и разделителя

List1 = [ "Apple", "Orange", "Banana", "Mango", "Grapes" ] Str2 = ", " # It is the comma delimiter # use join() function to join List1 with the " . " delimiter Str2 = Str2.join( List1) # print the join list print(" Display the concatenated List1 using join() function and delimiter", Str2) List2 = [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday" ] Str3 = " - " # It is the hyphen delimiter # use join() function to join List2 with the " - " delimiters Str3 = Str3.join( List2) # print the join list print(" Display the concatenated List2 using join() function and delimiter", Str3)
Display the concatenated List1 using join() function and delimiter Apple, Orange, Banana, Mango, Grapes Display the concatenated List2 using join() function and delimiter Sunday - Monday - Tuesday - Wednesday - Thursday

Программа для присоединения к списку без использования разделителя

# declare a python list Lt1 = [ 'j', 'a', 'v', 'a', 't', 'p', 'o', 'i', 'n', 't' ] print( " Display the elements of the List L1 " , Lt1) L2 = ' ' # declare any empty string without defining any delimiter Ret = L2.join( Lt1) # use join method to join L1 list with L2 print( " Display the List without using delimiters", Ret)
Display the elements of the List L1 ['j', 'a', 'v', 'a', 't', 'p', 'o', 'i', 'n', 't'] Display the List without using delimiters j a v a t p o i n t

Присоединение к списку двух целых чисел с помощью функции map()

Целочисленный список: он собирает все целые числа в списке, называемом целочисленным списком, и мы не можем объединить два целочисленных списка в Python с помощью функции join(). Поэтому мы используем функцию map(), которая преобразует целочисленный список в строку. После этого мы используем функцию join() для объединения результатов функции map() с соответствующими разделителями.

map(str, list_name)

В приведенном выше синтаксисе функция map() имеет два параметра: list_name и str. Где list_name — это имя списка целых чисел, а str — строка. Функция map() преобразует list_name в строку (str).

Программа для использования функции map() и функции join() в списке

Давайте создадим программу для преобразования заданного списка целых чисел в строку, используя функцию map(), а затем функцию join() для присоединения к списку.

lt = [1, 2, 3, 4, 5] # use map() function to convert integer list into string list_map = map(str, lt) lt2 = ', ' # use join() function to join lists and delimiter comma(,) res = lt2.join(list_map) print(" Display the concatenated integers list using map() and join() function ", res)
Display the concatenated integers list using map() and join() function 1, 2, 3, 4, 5

Программа для объединения двух списков в Python с помощью цикла for и функции append()

Функция append() используется для последовательного добавления или присоединения каждого элемента повторяющегося списка в конце другого списка с помощью цикла for. Давайте создадим простую программу для добавления элементов списка в конец другого списка с помощью функции append().

List1 = [1, 2, 3, 4, 5] # declare List1 List2 = [5, 6, 7, 8, 9, 10] # declare List2 print(" Given List1 ", List1) print(" Given List2 ", List2) # use for loop to iterate each element of Lt1 to l2 for i in List2: List1.append(i) # use append() function to insert each elements at the end of Lt1 print(" Display concatenation list using append() function ", List1)
Given List1 [1, 2, 3, 4, 5] Given List2 [5, 6, 7, 8, 9, 10] Display concatenation list using append() function [1, 2, 3, 4, 5, 5, 6, 7, 8, 9, 10]

Объединение нескольких списков с использованием метода itertools.chain()

Давайте создадим простую программу на Python для объединения нескольких списков с помощью метода chain(), импортировав пакет itertools.

# use Python itertools.chain() method to join two list import itertools # declare different lists a = [1, 2, 3, 4, 5] b = [6, 7, 8, 9, 10] c = [11, 12, 13, 14, 15] print(" Display the first list ", a) print(" Display the second list ", b) print(" Display the third list ", c) # use itertools.chain() method to join the list result = list(itertools.chain(a, b, c)) # pass the result variable in str() function to return the concatenated lists print(" Concatenated list in python using itertools.chain() method ", str(result))
Display the first list [1, 2, 3, 4, 5] Display the second list [6, 7, 8, 9, 10] Display the third list [11, 12, 13, 14, 15] Concatenated list in python using itertools.chain() method [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]

Программа для объединения двух списков с помощью оператора +

Рассмотрим пример объединения двух списков в Python с помощью оператора(+) плюс.

# Create a program to join two lists in Python using the '+' operator # declare two lists of characters list1 = [ 'A', 'B', 'C', 'D', 'E'] list2 = [ 'F', 'G', 'H', 'I', 'J'] # join two characters lists using '+' operator lt_sum1 = list1 + list2 # declares two lists of integers list3 = [ '1', '2', '3', '4', '5'] list4 = [ '6', '7', '8', '9', '10'] # join two integers lists using '+' operator lt_sum2 = list3 + list4 # display the concatenation list print(" Join two list of characters in Python using + operator: ", str(lt_sum1)) # display the concatenation list print(" Join two list of integers in Python using + operator: ", str(lt_sum2))
Join two list of characters in Python using + operator: ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'] Join two list of integers in Python using + operator: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10']

Объединение двух списков с оператором умножения(*)

Рассмотрим пример объединения двух списков в Python с помощью оператора *.

# declare two lists of characters List1 = [ 'A', 'B', 'C', 'D', 'E'] List2 = [ 'F', 'G', 'H', 'I', 'J'] print(" Display character List1 ", List1) print(" Display character List2 ", List2) # join two characters lists using '*' operator lt_sum1 = [*List1, *List2] # declares two lists of integers List3 = [ 1, 2, 3, 4, 5] List4 = [ 6, 7, 8, 9, 10] print(" Display integer List3 ", List3) print(" Display integer List4 ", List4) # join two integers lists using '*' operator lt_sum2 = [*List3, *List4] # display the concatenation list print(" Join two characters list in Python using * operator: "+ str(lt_sum1)) # display the concatenation list print(" Join two integers list in Python using * operator: "+ str(lt_sum2))
Display integer List3 [1, 2, 3, 4, 5] Display integer List4 [6, 7, 8, 9, 10] Join two characters list in Python using * operator: ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'] Join two integers list in Python using * operator: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

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

Напишем простую программу для объединения двух списков с помощью метода extend() в Python.

# takes two integers lists List1 = [5, 10, 5] List2 = [ 2, 4, 6, 8] print(" Display the List1 ", List1) print(" Display the List1 ", List2) # takes two string lists List3 = [ 'RED', 'BLUE', 'BLACK'] List4 = [ 'BROWN', 'PURPLE', 'GREY' ] print(" Display the List3 ", List3) print(" Display the List4 ", List4) # use extend() method to join two lists List1.extend(List2) List3.extend(List4) # print concatenation lists print( "\n Adding two lists of integers in Python using the extend() function: ", str(List1)) print( "\n Adding two lists of strings in Python using the extend() function: ", str(List3))
Display the List1 [5, 10, 5] Display the List1 [2, 4, 6, 8] Display the List3 ['RED', 'BLUE', 'BLACK'] Display the List4 ['BROWN', 'PURPLE', 'GREY'] Adding two lists of integers in Python using the extend() function: [5, 10, 5, 2, 4, 6, 8] Adding two lists of strings in Python using the extend() function: ['RED', 'BLUE', 'BLACK', 'BROWN', 'PURPLE', 'GREY']

2. Вычисление суммы элементов

Одной из распространённых задач по обработке списков с числовыми элементами является задача о подсчёте суммы элементов.

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

Скриншот 05-09-2022 232858.png

Обрати внимание!

• Списки можно складывать. Для получения списка \(а\) мы сложили списки \(а1\) и \(а2\).
• Сложив строковые элементы, получаем строку, но и суммировать надо со строкой, поэтому \(s1=’’\).
• Если бы условием было выбрать только числа, можно было бы написать так:
if type (\(a[i]\)) \(= =\) int or type (\(a[i]\)) \(= =\) float:
int — целые, float — вещественные.

С помощью условия можно отобрать из списка нужные элементы, также для выбора элементов можно сделать срез списка.

Срезом, или слайсингом, называют выборку элементов из последовательности с индексами начиная со start до stop (не включая), с шагом step.

Скриншот 05-09-2022 233337.png

Обрати внимание!

• При сложении списков важен порядок, в котором списки складываются — это изменяет индексы элементов.
• Если нет аргумента start, то срез начинается с нулевого элемента, если нет аргумента stop — до конца последовательности.
• Если нет аргумента step, то шаг равен единице.
• Любой из аргументов при создании среза может быть отрицательным числом.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *