logo

Scal dwie listy w Pythonie

Zobaczmy, jak połączyć dwie listy przy użyciu różnych metod Pyton . Operacja ta jest przydatna, gdy mamy wiele list elementów, które należy przetworzyć w podobny sposób.

  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 Połącz dwie listy

Poniżej znajdują się metody, które omówimy w tym artykule:



Tokenizator ciągów Java

Połącz dwie listy w Pythonie stosując Metodę Naiwną

W tej metodzie przechodzimy przez drugą listę i dodajemy elementy do pierwszej listy, tak aby pierwsza lista zawierała wszystkie elementy z obu list i tym samym wykonywała dodać.

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))>

>

>

Wyjście

Concatenated list using naive method : [1, 4, 5, 6, 5, 3, 5, 7, 2, 5]>

Złożoność czasowa: O(n + m), gdzie n i m są długościami odpowiednio danej listy_testów1 i listy_testów2.
Przestrzeń pomocnicza: O(m)

Połącz dwie listy za pomocą operatora +

Najbardziej konwencjonalną metodą łączenia list jest użycie + operator można łatwo dodać całą jedną listę za drugą listą i w ten sposób wykonać powiązanie.

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))>

>

>

Wyjście

Concatenated list using + : [1, 4, 5, 6, 5, 3, 5, 7, 2, 5]>

Złożoność czasowa: O(n), gdzie n jest całkowitą liczbą elementów na obu listach, ponieważ operator + iteruje po wszystkich elementach obu list w celu ich połączenia.
Przestrzeń pomocnicza: O(n), gdzie n jest całkowitą liczbą elementów na obu listach, gdy tworzona jest nowa lista do przechowywania listy połączonej.

Scal dwie listy w Pythonie, używając rozumienia list

Rozumienie listy może również wykonać to zadanie łączenia list. W tym przypadku tworzona jest nowa lista, ale ta metoda jest jednowierszową alternatywą dla omówionej powyżej metody pętli.

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))>

>

>

Wyjście

Concatenated list using list comprehension: [1, 4, 5, 6, 5, 3, 5, 7, 2, 5]>

Złożoność czasowa: O(n + m), gdzie n i m to długość danej listy_testów1 i listy_testów2
Przestrzeń pomocnicza: O(k), gdzie k jest długością res_list.

Połącz dwie listy za pomocą funkcji Extend()

The rozszerzyć() to funkcja rozszerzona o listy w Pythonie i dlatego można jej użyć do wykonania tego zadania. Ta funkcja wykonuje lokalne rozszerzenie pierwszej listy.

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))>

>

>

Wyjście

Concatenated list using list.extend() : [1, 4, 5, 6, 5, 3, 5, 7, 2, 5]>

Python Połącz dwie listy za pomocą operatora *

Dzięki operatorowi * ta metoda jest nowym dodatkiem do łączenia list i działa tylko w Pythonie 3.6 lub nowszym. Dowolny nie. list można połączyć i zwrócić w postaci nowej listy za pomocą tego operatora.

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))>

>

>

Wyjście

Concatenated list using * operator : [1, 4, 5, 6, 5, 3, 5, 7, 2, 5]>

Python łączy dwie listy za pomocą itertools.chain()

The itertools.chain() zwraca iterowalną wartość po połączeniu jej argumentów w jeden i dlatego nie wymaga przechowywania połączonej listy, jeśli wymagana jest tylko jej początkowa iteracja. Jest to przydatne, gdy lista konkatenowana musi zostać użyta tylko raz.

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))>

>

>

Wyjście

Concatenated list using itertools.chain() : [1, 4, 5, 6, 5, 3, 5, 7, 2, 5]>

Połącz dwie listy za pomocą funkcji redukcji().

Najpierw musimy zaimportować funkcję redukcji z narzędzia funkcyjne biblioteka. Następnie zainicjuj dwie zmienne przechowujące dwie różne listy. Teraz skorzystamy z kolejnej listy, w której będziemy przechowywać wszystkie listy zrobione w poprzednim kroku. Musimy utworzyć listę zagnieżdżoną. Teraz użyjemy funkcji redukcji() i przekażemy tę zagnieżdżoną listę jako parametr wraz z dwiema zmiennymi (jeśli zdecydujemy się na dwie listy). I użyj funkcji Anonimowy lambda aby wykonać operację łączenia i zapisać ją na liście.

sznurek do niego

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,[]))>

>

>

Wyjście

[1, 4, 5, 6, 5, 3, 5, 7, 2, 5]>

Złożoność czasowa: O(n+m), n to długość pierwszej listy, a m to długość drugiej listy.
Przestrzeń pomocnicza: O(n), n to liczba list branych pod uwagę