Рубрики
Без рубрики

9 Способов объединения списков в Python

Список-это широко используемый тип данных, и мы можем использовать различные способы в python для объединения списков. Мы можем преобразовать их в кортежи, наборы, словари.

Автор оригинала: Team Python Pool.

9 Способов объединения списков в Python

Одной из наиболее важных структур данных, используемых в Python, является список. Он имеет различные варианты использования в Python, так как является изменяемым, может содержать значения любого другого типа данных в том же списке. Кроме того, мы можем иметь элемент с равным значением более одного раза (что невозможно в наборах) и подкрепляться множеством различных методов, что делает нашу жизнь намного проще. В Python мы можем объединить несколько списков в href=”https://docs.python.org/3/tutorial/datastructures.html#more-on-lists”>единый список без каких-либо хлопот. href=”https://docs.python.org/3/tutorial/datastructures.html#more-on-lists”>единый список без каких-либо хлопот.

В этой статье мы рассмотрим несколько способов достижения сцепленных списков. Некоторые другие стандартные термины объединяют список, объединяют список и присоединяют список.

  1. <Использование наивного метода для объединения списка в python
  2. Использование функции расширения Python
  3. Функция добавления
  4. Использование оператора +
  5. Понимание списка
  6. Использование оператора *
  7. Использование itertools.chain()
  8. Объединить списки в словарь Python
  9. Объединить списки в Python в фрейм данных

Использование наивного метода для объединения списков в Python

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

Мы будем использовать цикл for для объединения двух списков-

list1=[1,2,3,4]
list2=[5,6,7,8]
for i in list2:
   # appending the elements of list2 into list1
   list1.append(i)
print(list1)
Output-
[1, 2, 3, 4, 5, 6, 7, 8]

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

list1=[1,2,3,4]
list2=[5,6,7,8]
list3=[9,10,11,12]
for i in list2:
   # appending the elements of list2 into list1
   list1.append(i)
for i in list3:
   # appending the elements of list3 into list1
   list1.append(i)
print(list1)
Output-
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
python комбинирует списки
python комбинирует списки

Вы можете подумать, что это простой метод. Так почему же мы обычно не используем этот метод и называем его наивным? Ответ прост, мы используем здесь два цикла for, и если у нас есть много списков и в этих списках у нас есть много элементов, то насколько велика будет временная сложность!Вот почему у нас есть разные методы для этой цели.

Использование функции расширения Python

Python имеет встроенную функцию для этой цели- extend. Давайте посмотрим, как это работает-

list1=[1,2,3,4]
list2=[5,6,7,8]
list2.extend(list1)
print(list2)
Output-
[5, 6, 7, 8, 1, 2, 3, 4]

Вы можете лучше понять работу этой функции с помощью следующего кода-

list1=[1,2,3,4]
list2=[5,6,7,8]
print(list2)
Output-
[5, 6, 7, 8, 1, 2, 3, 4]

Временная сложность этой функции extend() равна O(k), где k-длина списка, который нам нужно объединить с другим списком.Она меньше временной сложности наивного метода.Кроме того, мы вносим изменения в list2, list1 останется таким, как есть.

list1=[1,2,3,4]
list2=[5,6,7,8]
print("list2",list2)
print("list1",list1)
Output-
list2 [5, 6, 7, 8, 1, 2, 3, 4]
list1 [1, 2, 3, 4]

Использование функции добавления

Функция добавления может быть использована для добавления одного полного списка в другой список. Это означает, что элементы не будут добавлены один за другим, но полный список будет добавлен в тот же индекс. Не волнуйтесь, если вы не понимаете. Мы поймем это на примере.

list1=[1,2,3,4
list2=[5,6,7,8]
list1.append(list2)
print(list1)
Output-
[1, 2, 3, 4, [5, 6, 7, 8]]

Вы наверняка заметили бы изменение по сравнению с предыдущим выводом.Он имеет временную сложность O(1).

Использование оператора +

Да. Ты все правильно прочитал. Мы можем объединить любые списки с помощью оператора+.

list1=[1,2,3,4]
list2=[5,6,7,8]
list3=[9,10,11,12]+list2+list3
print(list4)
Output-
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]

Разница между этим методом и другими методами, которые мы изучили до сих пор, заключается в том, что в этом методе мы объединяем три разных списка в другой список. Во всех предыдущих случаях изменение происходило в одном из списков.

Использование понимания списка

flower1=['sunflower','lotus','rose']
flower2=['marigold','lily','tulip'
flowers=[y for x in (flower1,flower2) for y in x]
print(flowers)
Output-
['sunflower', 'lotus', 'rose', 'marigold', 'lily', 'tulip']

Использование оператора *

Если вы никогда не использовали оператор * в списке или других типах данных, таких как кортеж, вы будете рады узнать, насколько он полезен. Он используется для распаковки списка. Например-

list1=[1,2,3,4,5]
print(*list1)
Output-
1 2 3 4 5

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

list1=[1,2,3,4,5]
list2=[6,7,8,9]
list3=[list1,list2]
print(list3)
Output-
[1, 2, 3, 4, 5, 6, 7, 8, 9]

Если мы хотим, мы можем использовать это для объединения различных списков в кортеж или набор.

list1=[1,2,3,4,5]
list2=[6,7,8,9],list2
print(new_tuple)
print("type: ",type(new_tuple))
Output-
(1, 2, 3, 4, 5, 6, 7, 8, 9)
type: 
list1=[1,2,3,4,5]
list2=[6,7,8,9]
new_set={list1,list2}
print(new_set)
print("type: ",type(new_set))
Output-
{1, 2, 3, 4, 5, 6, 7, 8, 9}
type: 

Использование itertools.chain()

Мы можем импортировать пакет itertools python и использовать его цепную функцию для объединения списков. Для импорта используйте – from itertools import chain

from itertools import chain
list1=[1,2,3,4,5]
list2=[6,7,8,9](chain(list1,list2))
print(list3)
Output-
[1, 2, 3, 4, 5, 6, 7, 8, 9]

Поскольку мы знаем, что itertools возвращает объект, мы сначала должны ввести его в тип данных list, а затем распечатать.

Объедините списки в словарь Python

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

names=["ashwini","ashish","arya"]
marks=[40,47,32](zip(names,marks))
print(student_info)
Output-
{'ashwini': 40, 'ashish': 47, 'arya': 32}

Объедините списки в Python в фрейм данных

import pandas as pd
list1=[1,2,3,4,5]
list2=[6,7,8,9,10].DataFrame(list1,columns=["Values"]).DataFrame(list2,columns=["Values"]).concat((df1,df2))
print(final_df)
Output-
  Values
0   1
1   2
2   3
3   4
4   5
0   6
1   7
2   8
3   9
4  10

Предположим, если мы хотим объединить эти два списка 2 в разных столбцах фрейма данных-

import pandas as pd
list1=[1,2,3,4,5]
list2=[6,7,8,9,10].DataFrame(columns=['list1','list2']),list2
print(df)
Output-
list1 list2
0 1 6
1 2 7
2 3 8
3 4 9
4 5 10

Должен Читать

Распакуйте файл в Python: 5 Сценариев, которые вы должны знатьПонимание последовательности Collatz в PythonЛучшие способы вычисления факториала с помощью Numpy и SciPy

Вывод

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