Laten we eens kijken hoe we twee lijsten kunnen samenvoegen met behulp van verschillende methoden Python . Deze bewerking is handig als we een aantal lijsten met elementen hebben die op een vergelijkbare manier moeten worden verwerkt.
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 Voeg je bij twee lijsten
Hieronder staan de methoden die we in dit artikel zullen behandelen:
hoe te lezen uit een csv-bestand in java
- Naïeve methode gebruiken
- De ... gebruiken + exploitant
- Gebruik makend van lijst begrip
- Gebruik makend van verlengen() methode
- Gebruik makend van * exploitant
- Gebruik makend van itertools.chain()
- Voeg twee lijsten samen met behulp van reduce() functie
Voeg twee lijsten samen in Python met behulp van de naïeve methode
Bij deze methode doorkruisen we de tweede lijst en blijven we elementen aan de eerste lijst toevoegen, zodat de eerste lijst alle elementen in beide lijsten zou bevatten en dus de toevoegen.
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))> |
>
>Uitvoer
Concatenated list using naive method : [1, 4, 5, 6, 5, 3, 5, 7, 2, 5]>
Tijdcomplexiteit: O(n + m), waarbij n en m de lengtes zijn van respectievelijk de gegeven test_list1 en test_list2.
Hulpruimte: O(m)
Voeg twee lijsten samen met de operator +
De meest conventionele methode om de lijstaaneenschakeling uit te voeren, is het gebruik van + exploitant kan eenvoudig de hele lijst achter de andere lijst toevoegen en zo de aaneenschakeling.
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))> |
>
>Uitvoer
Concatenated list using + : [1, 4, 5, 6, 5, 3, 5, 7, 2, 5]>
Tijdcomplexiteit: O(n), waarbij n het totale aantal elementen in beide lijsten is, terwijl de operator + alle elementen van beide lijsten doorloopt om ze samen te voegen.
Hulpruimte: O(n), waarbij n het totale aantal elementen in beide lijsten is, aangezien er een nieuwe lijst wordt gemaakt om de samengevoegde lijst op te slaan.
Voeg twee lijsten samen in Python met behulp van lijstbegrip
Lijstbegrip kan ook deze taak van het aaneenschakelen van lijsten uitvoeren. In dit geval wordt er een nieuwe lijst gemaakt, maar deze methode is een oneliner-alternatief voor de hierboven besproken lusmethode.
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))> |
>
>Uitvoer
Concatenated list using list comprehension: [1, 4, 5, 6, 5, 3, 5, 7, 2, 5]>
Tijdcomplexiteit: O(n + m), waarbij n en m de lengte zijn van de gegeven testlijst1 en testlijst2
Hulpruimte: O(k), waarbij k de lengte van res_list is.
Voeg twee lijsten samen met extend()
De verlengen() is de functie uitgebreid met lijsten in Python en kan daarom worden gebruikt om deze taak uit te voeren. Deze functie voert de interne uitbreiding van de eerste lijst uit.
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))> |
>
>Uitvoer
Concatenated list using list.extend() : [1, 4, 5, 6, 5, 3, 5, 7, 2, 5]>
Python voegt twee lijsten samen met de operator *
Met behulp van de operator * is deze methode een nieuwe toevoeging aan de aaneenschakeling van lijsten en werkt deze alleen in Python 3.6+. Elke nee. Met deze operator kunnen meerdere lijsten worden samengevoegd en in een nieuwe lijst worden geretourneerd.
Python3
gedeeltelijke afhankelijkheid
# 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))> |
>
>Uitvoer
Concatenated list using * operator : [1, 4, 5, 6, 5, 3, 5, 7, 2, 5]>
Python voegt twee lijsten samen met itertools.chain()
De itertools.chain() retourneert de iterabele nadat de argumenten in één zijn geketend en vereist daarom niet dat de aaneengeschakelde lijst wordt opgeslagen als alleen de initiële iteratie vereist is. Dit is handig als de samengevoegde lijst slechts één keer hoeft te worden gebruikt.
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))> |
>
>Uitvoer
Concatenated list using itertools.chain() : [1, 4, 5, 6, 5, 3, 5, 7, 2, 5]>
Voeg twee lijsten samen met behulp van de functie reduce().
Eerst moeten we de reduce-functie importeren uit functionele hulpmiddelen bibliotheek. Initialiseer vervolgens twee variabelen die twee verschillende lijsten bevatten. Nu zullen we een andere lijst gebruiken waarin we alle lijsten uit de vorige stap zullen opslaan. We moeten een geneste lijst vormen. Nu zullen we de functie reduce() gebruiken en die geneste lijst doorgeven als parameter naast twee variabelen (als we ervoor kiezen om twee lijsten te hebben). En gebruik de Anoniem-functie lambda om de aaneenschakelingsbewerking uit te voeren en deze in een lijst op te slaan.
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,[]))> |
>
>Uitvoer
[1, 4, 5, 6, 5, 3, 5, 7, 2, 5]>
Tijdcomplexiteit: O(n+m), n is de lengte van de eerste lijst, en m is de lengte van de tweede lijst.
Hulpruimte: O(n), n is het aantal lijsten dat in aanmerking wordt genomen