Об’єднайте два списки в Python
Давайте подивимося, як об’єднати два списки різними методами Python . Ця операція корисна, коли у нас є кілька списків елементів, які потрібно обробити подібним чином.
Input: test_list1 = [1, 4, 5, 6, 5] test_list2 = [3, 5, 7, 2, 5] Output: [1, 4, 5, 6, 5, 3, 5, 7, 2, 5] Explanation: The output list is the list we get from Merging both the input list.
Python Join Two Lists
Нижче наведено методи, які ми розглянемо в цій статті.
- Використання наївного методу
- Використовуючи + оператор
- Використання розуміння списку
- Використання extend() метод
- Використання * оператор
- Використання itertools.chain()
- Об’єднати два списки за допомогою функція reduce().
Об’єднайте два списки в Python за допомогою наївного методу
У цьому методі ми проходимо другий список і продовжуємо додавати елементи в перший список, щоб перший список містив усі елементи в обох списках і, отже, виконував додавати.
Python3
# Initializing lists> test_list1> => [> 1> ,> 4> ,> 5> ,> 6> ,> 5> ]> test_list2> => [> 3> ,> 5> ,> 7> ,> 2> ,> 5> ]> # using naive method to concat> for> i> in> test_list2 :> > test_list1.append(i)> # Printing concatenated list> print> (> 'Concatenated list using naive method : '> > +> str> (test_list1))> |
Вихід
Concatenated list using naive method : [1, 4, 5, 6, 5, 3, 5, 7, 2, 5]
Часова складність: O(n + m), де n і m — довжини даних test_list1 і test_list2 відповідно.
Допоміжний простір: О(м)
Об’єднайте два списки за допомогою оператора +
Найбільш звичайний метод для виконання конкатенації списку, використання + оператор можна легко додати весь один список за іншим списком і, отже, виконати конкатенація.
Python3
# Initializing lists> test_list3> => [> 1> ,> 4> ,> 5> ,> 6> ,> 5> ]> test_list4> => [> 3> ,> 5> ,> 7> ,> 2> ,> 5> ]> # using + operator to concat> test_list3> => test_list3> +> test_list4> # Printing concatenated list> print> (> 'Concatenated list using + : '> > +> str> (test_list3))> |
Вихід
Concatenated list using + : [1, 4, 5, 6, 5, 3, 5, 7, 2, 5]
Часова складність: O(n), де n – загальна кількість елементів в обох списках, оскільки оператор + повторює всі елементи обох списків, щоб об’єднати їх.
Допоміжні приміщення: O(n), де n — загальна кількість елементів в обох списках, оскільки новий список створюється для зберігання об’єднаного списку.
Об’єднайте два списки в Python за допомогою розуміння списків
Розуміння списку також може виконати це завдання конкатенації списків. У цьому випадку створюється новий список, але цей метод є однорядковою альтернативою методу циклу, описаному вище.
Python3
# Python3 code to demonstrate list> # concatenation using list comprehension> # Initializing lists> test_list1> => [> 1> ,> 4> ,> 5> ,> 6> ,> 5> ]> test_list2> => [> 3> ,> 5> ,> 7> ,> 2> ,> 5> ]> # using list comprehension to concat> res_list> => [y> for> x> in> [test_list1, test_list2]> for> y> in> x]> # Printing concatenated list> print> (> 'Concatenated list using list comprehension: '> > +> str> (res_list))> |
Вихід
Concatenated list using list comprehension: [1, 4, 5, 6, 5, 3, 5, 7, 2, 5]
Часова складність: O(n + m), де n і m є довжиною даних test_list1 і test_list2
Допоміжний простір: O(k), де k — довжина res_list.
Об’єднайте два списки за допомогою extend()
The extend() це функція, розширена списками в Python і, отже, може використовуватися для виконання цього завдання. Ця функція виконує розширення на місці першого списку.
Python3
# Python3 code to demonstrate list> # concatenation using list.extend()> # Initializing lists> test_list3> => [> 1> ,> 4> ,> 5> ,> 6> ,> 5> ]> test_list4> => [> 3> ,> 5> ,> 7> ,> 2> ,> 5> ]> # using list.extend() to concat> test_list3.extend(test_list4)> # Printing concatenated list> print> (> 'Concatenated list using list.extend() : '> > +> str> (test_list3))> |
Вихід
Concatenated list using list.extend() : [1, 4, 5, 6, 5, 3, 5, 7, 2, 5]
Python об’єднати два списки за допомогою оператора *
Цей метод із використанням оператора * є новим доповненням до конкатенації списків і працює лише в Python 3.6+. Будь-які ні. списків можна об’єднати та повернути в новий список за допомогою цього оператора.
Python3
# Python3 code to demonstrate list> # concatenation using * operator> # Initializing lists> test_list1> => [> 1> ,> 4> ,> 5> ,> 6> ,> 5> ]> test_list2> => [> 3> ,> 5> ,> 7> ,> 2> ,> 5> ]> # using * operator to concat> res_list> => [> *> test_list1,> *> test_list2]> # Printing concatenated list> print> (> 'Concatenated list using * operator : '> > +> str> (res_list))> |
Вихід
Concatenated list using * operator : [1, 4, 5, 6, 5, 3, 5, 7, 2, 5]
Python об’єднує два списки за допомогою itertools.chain()
The itertools.chain() повертає iterable після об’єднання його аргументів в один і, отже, не вимагає зберігання з’єднаного списку, якщо потрібна лише його початкова ітерація. Це корисно, коли конкатенований список потрібно використати лише один раз.
Python3
# Python3 code to demonstrate list> # concatenation using itertools.chain()> import> itertools> # Initializing lists> test_list1> => [> 1> ,> 4> ,> 5> ,> 6> ,> 5> ]> test_list2> => [> 3> ,> 5> ,> 7> ,> 2> ,> 5> ]> # using itertools.chain() to concat> res_list> => list> (itertools.chain(test_list1, test_list2))> # Printing concatenated list> print> (> 'Concatenated list using itertools.chain() : '> > +> str> (res_list))> |
Вихід
Concatenated list using itertools.chain() : [1, 4, 5, 6, 5, 3, 5, 7, 2, 5]
Об’єднайте два списки за допомогою функції reduce().
По-перше, нам потрібно імпортувати функцію зменшення з functools бібліотека. Потім ініціалізуйте дві змінні, які містять два різні списки. Тепер ми використаємо інший список, у якому ми збережемо всі списки, зроблені на попередньому кроці. Нам потрібно сформувати вкладений список. Тепер ми використаємо функцію reduce() і передамо цей вкладений список як параметр поряд із двома змінними (якщо ми вирішимо мати два списки). І використовуйте функцію Anonymous лямбда щоб виконати операцію конкатенації та зберегти її в списку.
Python3
from> functools> import> reduce> test_list1> => [> 1> ,> 4> ,> 5> ,> 6> ,> 5> ]> test_list2> => [> 3> ,> 5> ,> 7> ,> 2> ,> 5> ]> nested_list> => [test_list1,test_list2]> print> (> reduce> (> lambda> i,j:i> +> j,nested_list,[]))> |
Вихід
[1, 4, 5, 6, 5, 3, 5, 7, 2, 5]
Часова складність: O(n+m), n — довжина першого списку, а m — довжина другого списку.
Допоміжний простір: O(n), n – кількість списків, які беруться до уваги