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

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

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

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

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

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

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

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



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



items1 = ['сайт', 'мой', 'работает', 'нормально']

items2 = ['что', 'такое', 'python']

items3 = items1 + items2



print(items3)



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

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

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



# способ №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))



print(list3)



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

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

Объединение списков в цикле For

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

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

Пример:



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



list1 = ['сайт', 'мой', 'работает', 'нормально']

list2 = ['что', 'такое', 'python']



# вставка значений из первого списка во второй

for item in list2:

    list1.append(item)



print(list1)



# слияние по условию - если длина строки больше трех символов

list1 = ['сайт', 'мой', 'работает', 'нормально']

list2 = ['что', 'такое', 'python']



for item in list2:

    if len(item) > 3:

        list1.append(item)



print(list1)



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

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

Объединение списков с помощью спискового включения (list comprehension)

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



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



list1 = ['сайт', 'мой', 'работает', 'нормально']

list2 = ['что', 'такое', 'python']



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



print(list1)



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

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

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





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



list1 = [1, 2, 3, 4]

list2 = [3, 4, 5, 6]

list3 = list(set(list1).intersection(set(list2)))



print(list3)



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

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

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

Источник

НЕТ КОММЕНТАРИЕВ

Оставить комментарий