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

Как соединить два списка в python

  • автор:

Способы слияния списков в Python

Способы слияния списков в Python

Доброго времени суток! В этой статье мы рассмотрим разные способы объединения списков в Python.

Умение работать со списками Python — очень важный навык. Списки в Python являются изменяемыми объектами. Они также могут содержать повторяющиеся значения, которые по-разному упорядочены.

Итак, перейдем непосредственно к рассмотрению примеров.

Самый простой способ объединить списки Python — это использовать либо распаковку списка, либо простой оператор +.

Давайте сначала рассмотрим использование оператора +, поскольку он намного проще и понятнее:

# способ №1 — оператор +

items1 = [‘сайт’, ‘мой’, ‘работает’, ‘нормально’]
items2 = [‘что’, ‘такое’, ‘python’]
items3 = items1 + items2

Здесь мы видим, что когда мы распечатываем третий список, он содержит значения из первого и второго.

Аналогично, мы можем создать новый список, распаковав все элементы из списков, которые хотим объединить. Используя оператор *, мы можем получить доступ ко всем элементам в обоих списках и распаковать их в третий.

Давайте посмотрим, как это будет выглядеть:

# способ №2 — распаковка списков

items1 = [‘сайт’, ‘мой’, ‘работает’, ‘нормально’]
items2 = [‘что’, ‘такое’, ‘python’]
items3 = [*items1, *items2]
print(items3)

Объединение списков Python с использованием Zip

Функция zip последовательно перебирает несколько элементов, позволяя нам получать доступ к элементам по порядку.

Давайте посмотрим, как мы можем использовать функцию zip() для объединения списков в Python поочередно:

# способ №3 — использование функции zip

items1 = [‘сайт’, ‘мой’, ‘работает’, ‘нормально’]
items2 = [‘что’, ‘такое’, ‘python’]

items3 = [item for sublist in zip(items1, items2) for item in sublist]
print(items3)

Функция zip() создает объект zip, который технически является объектом генератора. Когда мы превращаем его обратно в список, мы получаем доступ ко всем элементам в генераторе. Из-за этого мы можем использовать функцию для объединения двух списков Python в последовательном порядке.

Объединение списков без дубликатов

В Python есть структура данных set, которая в чем-то похожа на список, но не может содержать повторяющихся элементов. Мы можем использовать set для удаления любых дубликатов из списка, преобразовав список в set.

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

# способ №4 — слияние списков с удалением дубликатов

list1 = [1, 2, 3, 4]
list2 = [4, 5, 6, 7]
list3 = list(set(list1 + list2))

Что мы здесь сделали:

  1. Мы объединили списки с помощью оператора +,
  2. Затем мы преобразовали этот список в set для удаления дубликатов
  3. Затем мы преобразовали набор обратно в список
Объединение списков в цикле For

Хотя это не тот подход, который необходим в большинстве случаев, но он гибче с точки зрения того, какие элементы включать в итоговый список.

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

# способ №5 — использование цикла for

list1 = [‘сайт’, ‘мой’, ‘работает’, ‘нормально’]
list2 = [‘что’, ‘такое’, ‘python’]

# вставка значений из первого списка во второй
for item in list2:
list1.append(item)

# слияние по условию — если длина строки больше трех символов
list1 = [‘сайт’, ‘мой’, ‘работает’, ‘нормально’]
list2 = [‘что’, ‘такое’, ‘python’]

for item in list2:
if len(item) > 3:
list1.append(item)

то мы сделали здесь в обоих примерах:

  1. Мы прошлись по нашему второму списку, добавив каждый элемент из второго списка к первому списку — первый вариант
  2. Второй вариант — то же самое, но с условием:
  3. Если условие выполнено, то мы добавляем элемент в список.
  4. Если это не так, то элемент пропускается.
Объединение списков с помощью спискового включения (list comprehension)

Давайте посмотрим, как это выглядит:

# способ №6 — списковое включение (List Comprehension)

list1 = [‘сайт’, ‘мой’, ‘работает’, ‘нормально’]
list2 = [‘что’, ‘такое’, ‘python’]

[list1.append(item) for item in list2]

Объединение списков по общим элементам

Иногда возникает потребность — объединить только общие элементы между двумя списками Python, что означает пересечение между двумя списками.

Давайте посмотрим, как объединять списки только с общими элементами:

# способ №7 — слияние списков только по общим элементам

list1 = [1, 2, 3, 4]
list2 = [3, 4, 5, 6]
list3 = list(set(list1).intersection(set(list2)))

Давайте рассмотрим, что мы здесь сделали:

  1. Оба списка преобразуются в set
  2. Первый набор использует метод .intersection() в который передается набор из второго списка
  3. Окончательный набор возвращается в виде списка

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

Создано 17.03.2022 13:29:19

  • Михаил Русаков
  • Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

    Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
    Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

    Если Вы не хотите пропустить новые материалы на сайте,
    то Вы можете подписаться на обновления: Подписаться на обновления

    Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

    Порекомендуйте эту статью друзьям:

    Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

    1. Кнопка:
      Она выглядит вот так:
    2. Текстовая ссылка:
      Она выглядит вот так: Как создать свой сайт
    3. BB-код ссылки для форумов (например, можете поставить её в подписи):

    Комментарии ( 0 ):

    Для добавления комментариев надо войти в систему.
    Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.

    Copyright © 2010-2024 Русаков Михаил Юрьевич. Все права защищены.

    Слияние списков в Python: метод join

    Слияние, или объединение, списков – это распространенная задача, с которой сталкивается каждый разработчик. В Python есть встроенный метод для решения этой задачи, и он называется join() . Этот метод применяется к строкам и позволяет объединить элементы списка в одну строку с указанным разделителем.

    Простой пример использования join()

    Допустим, у вас есть список слов:

    words = ['Hello', 'World']

    И вы хотите объединить эти слова в одну строку с пробелом в качестве разделителя. Вот как это можно сделать с помощью метода join() :

    result = ' '.join(words) print(result) # Вывод: Hello World

    В данном случае ‘ ‘ — это разделитель, который мы используем, а words — список, элементы которого мы хотим объединить.

    Объединение числовых списков

    Важно отметить, что метод join() работает только со списками строк. Если у вас есть список чисел, вы должны сначала преобразовать числа в строки:

    numbers = [1, 2, 3, 4] str_numbers = [str(n) for n in numbers] result = ' '.join(str_numbers) print(result) # Вывод: 1 2 3 4

    Объединение без разделителей

    Если вы хотите объединить элементы списка без разделителей, просто используйте пустую строку (») в качестве разделителя:

    letters = ['a', 'b', 'c', 'd'] result = ''.join(letters) print(result) # Вывод: abcd

    Метод join() – это удобный и эффективный способ слияния списков в Python. Надеюсь, это было полезно! �� И не забывайте экспериментировать и пробовать разные вещи, чтобы лучше понять, как все работает. Практика — лучший учитель!

    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']

    Как заархивировать два списка в Python

    Часто вас может заинтересовать сжатие (или «объединение») двух списков в Python. К счастью, это легко сделать с помощью функции zip().

    В этом руководстве показано несколько примеров использования этой функции на практике.

    Пример 1. Заархивируйте два списка равной длины в один список

    Следующий синтаксис показывает, как объединить два списка одинаковой длины в один список:

    #define list a and list b a = ['a', 'b', 'c'] **b = [1, 2, 3] #zip the two lists together into one list **list( zip (a, b)) [('a', 1),('b', 2),('c', 3)] 

    Пример 2. Заархивируйте два списка одинаковой длины в словарь

    Следующий синтаксис показывает, как объединить два списка одинаковой длины в словарь:

    #define list of keys and list of values keys = ['a', 'b', 'c'] values = [1, 2, 3] #zip the two lists together into one dictionary **dict( zip (keys, values))

    Пример 3: Заархивируйте два списка разной длины

    Если ваши два списка имеют разную длину, zip() будет усечен до длины самого короткого списка:

    #define list a and list b a = ['a', 'b', 'c', 'd'] **b = [1, 2, 3] #zip the two lists together into one list **list( zip (a, b)) [('a', 1),('b', 2),('c', 3)] 

    Если вы хотите предотвратить усечение zip() до длины самого короткого списка, вместо этого вы можете использовать функцию zip_longest() из библиотеки itertools .

    По умолчанию эта функция заполняет значение «Нет» для отсутствующих значений:

    from itertools import zip_longest #define list a and list b a = ['a', 'b', 'c', 'd'] **b = [1, 2, 3] #zip the two lists together without truncating to length of shortest list **list( zip_longest (a, b)) [('a', 1),('b', 2),('c', 3),('d', None)] 

    Однако вы можете использовать аргумент fillvalue , чтобы указать другое значение заполнения:

    #define list a and list b a = ['a', 'b', 'c', 'd'] **b = [1, 2, 3] #zip the two lists together, using fill value of '0' **list( zip_longest (a, b, fillvalue= 0 )) [('a', 1),('b', 2),('c', 3),('d', 0)] 

    Вы можете найти полную документацию по функции zip_longest() здесь .

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

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