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
- Używanie metody naiwnej
- Używając + operator
- Za pomocą zrozumienie listy
- Za pomocą rozszerzyć() metoda
- Za pomocą * operatora
- Za pomocą itertools.chain()
- Połącz dwie listy za pomocą funkcja redukcji().
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ę