Låt oss se hur man sammanfogar två listor med olika metoder i Pytonorm . Denna operation är användbar när vi har ett antal listor med element som behöver bearbetas på liknande sätt.
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 Gå med i två listor
Nedan är metoderna som vi kommer att täcka i den här artikeln:
till strängmetoden java
- Använder naiv metod
- Använda + operatör
- Använder sig av listförståelse
- Använder sig av förlänga() metod
- Använder sig av * operatör
- Använder sig av itertools.chain()
- Slå samman två Lista med hjälp av reduce() funktion
Slå samman två listor i Python använder naiv metod
I den här metoden går vi igenom den andra listan och fortsätter att lägga till element i den första listan, så att den första listan skulle ha alla element i båda listorna och därmed utföra bifoga.
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))> |
>
>Produktion
Concatenated list using naive method : [1, 4, 5, 6, 5, 3, 5, 7, 2, 5]>
Tidskomplexitet: O(n + m), där n och m är längderna av den givna testlista1 respektive testlista2.
Hjälputrymme: O(m)
Sammanfoga två listor med operatorn +
Den mest konventionella metoden för att utföra listan sammanlänkning, användningen av + operatör kan enkelt lägga till hela en lista bakom den andra listan och därmed utföra sammanlänkning.
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))> |
>
>Produktion
Concatenated list using + : [1, 4, 5, 6, 5, 3, 5, 7, 2, 5]>
Tidskomplexitet: O(n), där n är det totala antalet element i båda listorna, eftersom operatorn + itererar genom alla element i båda listorna för att sammanfoga dem.
Extra utrymme: O(n), där n är det totala antalet element i båda listorna, eftersom en ny lista skapas för att lagra den sammanlänkade listan.
Slå samman två listor i Python med hjälp av listförståelse
Listförståelse kan också utföra denna uppgift med listsammansättning. I det här fallet skapas en ny lista, men denna metod är ett one-liner-alternativ till loopmetoden som diskuterats ovan.
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))> |
>
>Produktion
Concatenated list using list comprehension: [1, 4, 5, 6, 5, 3, 5, 7, 2, 5]>
Tidskomplexitet: O(n + m), där n och m är längden på givna test_list1 och test_list2
Hjälputrymme: O(k), där k är längden på res_list.
Slå samman två listor med extend()
De förlänga() är funktionen utökad med listor i Python och kan därför användas för att utföra denna uppgift. Den här funktionen utför förlängningen av den första listan på plats.
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))> |
>
>Produktion
Concatenated list using list.extend() : [1, 4, 5, 6, 5, 3, 5, 7, 2, 5]>
Python Gå med i två listor med *-operatorn
Med operatorn * är den här metoden ett nytt tillägg till listsammansättning och fungerar endast i Python 3.6+. Något nej. listor kan sammanfogas och returneras i en ny lista med denna operator.
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))> |
>
>Produktion
Concatenated list using * operator : [1, 4, 5, 6, 5, 3, 5, 7, 2, 5]>
Python Gå med i två listor med itertools.chain()
De itertools.chain() returnerar iterabeln efter att ha kedjat dess argument i ett och kräver därför inte lagring av den sammanlänkade listan om endast dess initiala iteration krävs. Detta är användbart när den sammanlänkade listan bara måste användas en gång.
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))> |
hrithik roshan ålder
>
>Produktion
Concatenated list using itertools.chain() : [1, 4, 5, 6, 5, 3, 5, 7, 2, 5]>
Sammanfoga två listor använder reduce()-funktionen
Först måste vi importera reduceringsfunktionen från funktionsverktyg bibliotek. Initiera sedan två variabler som innehåller två olika listor. Nu kommer vi att använda en annan lista där vi kommer att lagra alla listor som togs i föregående steg. Vi måste skapa en kapslad lista. Nu kommer vi att använda reduce()-funktionen och skicka den kapslade listan som en parameter tillsammans med två variabler (om vi väljer att ha två listor). Och använd funktionen Anonym lambda för att göra sammanlänkningen och lagra den i en lista.
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,[]))> |
>
>Produktion
[1, 4, 5, 6, 5, 3, 5, 7, 2, 5]>
Tidskomplexitet: O(n+m), n är längden på den första listan och m är längden på den andra listan.
Hjälputrymme: O(n), n är antalet listor som tas i beaktande