Katsotaanpa, kuinka kaksi luetteloa yhdistetään eri menetelmillä Python . Tämä toiminto on hyödyllinen, kun meillä on useita luetteloita elementeistä, jotka on käsiteltävä samalla tavalla.
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 Liity kahteen listaan
Alla on menetelmät, joita käsittelemme tässä artikkelissa:
js asetettu
- Naiivilla menetelmällä
- Käyttämällä + operaattori
- Käyttämällä listan ymmärtäminen
- Käyttämällä laajentaa () menetelmä
- Käyttämällä *operaattori
- Käyttämällä itertools.chain()
- Yhdistä kaksi listaa käyttämällä vähentää()-funktiota
Yhdistä kaksi luetteloa Pythonissa käyttäen Naiivia menetelmää
Tässä menetelmässä kuljemme toisen luettelon läpi ja jatkamme elementtien lisäämistä ensimmäiseen luetteloon, jotta ensimmäisessä luettelossa olisi kaikki elementit molemmissa listoissa ja siten suoritettaisiin liittää.
Python 3
# 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))> |
>
>Lähtö
Concatenated list using naive method : [1, 4, 5, 6, 5, 3, 5, 7, 2, 5]>
Aika monimutkaisuus: O(n + m), missä n ja m ovat annettujen testiluettelo1:n ja testiluettelon2 pituudet.
Aputila: O(m)
Liitä kaksi listaa +-operaattorilla
Perinteisin tapa suorittaa luettelon ketjuttaminen, käyttö + operaattori voi helposti lisätä koko luettelon toisen luettelon taakse ja suorittaa siten ketjuttaminen.
Python 3
# 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))> |
>
>Lähtö
Concatenated list using + : [1, 4, 5, 6, 5, 3, 5, 7, 2, 5]>
Aika monimutkaisuus: O(n), jossa n on elementtien kokonaismäärä molemmissa listoissa, kun +-operaattori iteroi molempien luetteloiden kaikki elementit ketjuttaakseen ne.
Aputila: O(n), jossa n on elementtien kokonaismäärä molemmissa listoissa, kun uusi lista luodaan tallentamaan ketjutettu luettelo.
Yhdistä kaksi luetteloa Pythonissa käyttämällä luettelon ymmärtämistä
Listan ymmärtäminen voi myös suorittaa tämän luettelon ketjutuksen tehtävän. Tässä tapauksessa luodaan uusi luettelo, mutta tämä menetelmä on yksilinjainen vaihtoehto edellä käsitellylle silmukkamenetelmälle.
Python 3
# 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))> |
>
>Lähtö
Concatenated list using list comprehension: [1, 4, 5, 6, 5, 3, 5, 7, 2, 5]>
Aika monimutkaisuus: O(n + m), jossa n ja m ovat annettujen testilista1 ja testiluettelo2 pituus
Aputila: O(k), missä k on res_list:n pituus.
Yhdistä kaksi listaa käyttämällä Extended()
The laajentaa () on Pythonin luetteloilla laajennettu toiminto, joten sitä voidaan käyttää tämän tehtävän suorittamiseen. Tämä toiminto suorittaa ensimmäisen luettelon laajennuksen.
Python 3
# 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))> |
>
>Lähtö
Concatenated list using list.extend() : [1, 4, 5, 6, 5, 3, 5, 7, 2, 5]>
Python Liitä kaksi listaa käyttämällä *-operaattoria
Käyttämällä *-operaattoria tämä menetelmä on uusi lisäys luetteloiden ketjuttamiseen ja toimii vain Python 3.6+ -versiossa. Mikä tahansa ei. listat voidaan ketjuttaa ja palauttaa uudeksi listaksi tällä operaattorilla.
Python 3
# 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))> |
mikä on kaiutin
>
>Lähtö
Concatenated list using * operator : [1, 4, 5, 6, 5, 3, 5, 7, 2, 5]>
Python yhdistää kaksi listaa käyttämällä itertools.chain()
The itertools.chain() palauttaa iteroitavan ketjutettuaan argumentit yhdeksi eikä vaadi ketjutetun luettelon tallentamista, jos vaaditaan vain sen alkuperäinen iteraatio. Tämä on hyödyllistä, kun ketjutettua luetteloa on käytettävä vain kerran.
Python 3
# 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))> |
>
>Lähtö
Concatenated list using itertools.chain() : [1, 4, 5, 6, 5, 3, 5, 7, 2, 5]>
Yhdistä kaksi listaa käyttämällä vähennysfunktiota ()
Ensin meidän on tuotava vähennystoiminto kohteesta toiminnalliset työkalut kirjasto. Alusta sitten kaksi muuttujaa, joissa on kaksi erilaista luetteloa. Nyt käytämme toista luetteloa, johon tallennamme kaikki edellisessä vaiheessa otetut luettelot. Meidän on muodostettava sisäkkäinen luettelo. Nyt käytämme vähennysfunktiota () ja välitämme tuon sisäkkäisen listan parametrina kahden muuttujan rinnalla (jos valitsemme kaksi listaa). Ja käytä Anonymous-toimintoa lambda tehdäksesi ketjutusoperaation ja tallentaaksesi sen luetteloon.
Python 3
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,[]))> |
>
>Lähtö
[1, 4, 5, 6, 5, 3, 5, 7, 2, 5]>
Aika monimutkaisuus: O(n+m), n on ensimmäisen listan pituus ja m on toisen listan pituus.
Aputila: O(n), n on huomioitujen listojen lukumäärä