Kuinka ketjuttaa luetteloita Pythonissa

Kuinka Ketjuttaa Luetteloita Pythonissa



Python-listat ovat monipuolisia ja laajalti käytettyjä tietorakenteita, jotka mahdollistavat kohteiden kokoelmien tallentamisen ja käsittelyn. Yksi yleinen toiminto luetteloiden kanssa työskenneltäessä on ketjuttaminen, joka sisältää kahden tai useamman luettelon yhdistämisen uuden luettelon luomiseksi. Tämä prosessi on erityisen hyödyllinen, kun tietoja yhdistetään tai luodaan suurempi luettelo pienemmistä. Listojen yhdistäminen voidaan saavuttaa useilla eri menetelmillä, ja näiden tekniikoiden ymmärtäminen on välttämätöntä, jotta voit työskennellä tehokkaasti luetteloiden kanssa Pythonissa. Yhdisteletpä sitten numeroluetteloita, merkkijonoja tai monimutkaisia ​​objekteja, luetteloiden ketjutuksen hallitseminen mahdollistaa tietojen käsittelyn ja järjestämisen monin eri tavoin.

Esimerkki 1: Listojen ketjuttaminen +-operaattorilla

Voimme käyttää '+'-operaattoria Pythonissa luetteloiden ketjuttamiseen. '+'-operaattorilla voit yhdistää kaksi tai useampia luetteloita muodostaaksesi uuden luettelon. Kun käytät '+'-operaattoria listojen kanssa, uusi luettelo luodaan ja alkuperäisten luetteloiden elementit kopioidaan uuteen luetteloon siinä järjestyksessä, jossa ne näkyvät.

Tässä on yksinkertainen esimerkki:







arkki 1 = [ 1 , 2 , 3 ]

lista2 = [ 4 , 5 , 6 ]

tulosluettelo = lista1 + lista2

Tulosta ( tulosluettelo )

Tässä kuvassa on kaksi luetteloa: 'lista1' ja 'lista2'. Käytämme +-operaattoria integroidaksemme ne yhdeksi luetteloksi. Listojen kanssa käytettäessä '+'-operaattori ketjuttaa ne, mikä tarkoittaa, että se yhdistää toisen listan elementit ensimmäisen loppuun. Joten sen jälkeen, kun 'tuloslista = lista1 + lista2' on suoritettu, 'result_list' sisältää sekä 'list1'- että 'list2' -elementit siinä järjestyksessä, jossa ne ketjutettiin.





Vaikka tämä menetelmä on ytimekäs, muista, että se luo uuden luettelon, joka ei välttämättä ole tehokas suurille listoille kopion luomiseen liittyvien kustannuksien vuoksi.





Esimerkki 2: Extend()-menetelmän käyttäminen

Iteroitavan kohteet voidaan liittää olemassa olevan luettelon loppuun käyttämällä extend()-metodia. Se muuttaa alkuperäistä luetteloa paikalleen, toisin kuin '+'-operaattori, joka luo uuden luettelon.

Oletetaan, että meillä on luettelo luokan opiskelijoista, ja haluamme laajentaa tätä luetteloa lisäämällä uusien opiskelijoiden nimet, jotka ovat äskettäin liittyneet käyttämällä extend()-menetelmää. Näin voit toimia:



luokan_oppilaat = [ 'Liisa' , 'Bella' , 'Charlie' ]

uudet_opiskelijat = [ 'David' , 'Eva' , 'Adam' ]

luokan_oppilaat. laajentaa ( uudet_opiskelijat )

Tulosta ( 'Päivitetty opiskelijaluettelo:' , luokan_oppilaat )

Tässä esimerkissä alkuperäinen luettelo, joka on 'class_students', sisältää olemassa olevien opiskelijoiden nimet. 'New_students' -luettelo sisältää äskettäin luokkaan liittyneiden oppilaiden nimet. Käyttämällä extend()-metodia lisäämme uusien opiskelijoiden nimet alkuperäisen listan loppuun.

Esimerkki 3: +=-operaattorin käyttäminen ketjutuksessa

'+='-operaattori on lyhenne laajennukselle ()-menetelmälle. Se muokkaa luetteloa paikallaan yhdistämällä oikeanpuoleisen luettelon elementit vasemmanpuoleiseen luetteloon.

Oletetaan, että meillä on luettelo suosikkiväreistä ja haluamme päivittää sen lisäämällä värejä +=-operaattorilla.

suosikki_värit = [ 'sininen' , 'vihreä' , 'punainen' ]

lisävärit = [ 'violetti' , 'oranssi' , 'keltainen' ]

suosikki_värit + = lisävärit

Tulosta ( 'Päivitetty suosikkivärit:' , suosikki_värit )

Tässä skenaariossa aloitamme luettelosta suosikkiväreistämme, jota edustaa 'favorite_colors'. Sitten meillä on joitain uusia värejä, jotka haluaisimme sisällyttää 'additional_colors' -luetteloon. '+='-operaattorilla yhdistämme uudet värit olemassa oleviin suosikkeihimme muokkaamalla 'favorite_colors' -luetteloa.

Toimenpiteen jälkeen, kun tulostamme 'Päivitetyt suosikkivärimme', voimme nähdä seuraavan tuloksen:

Esimerkki 4: '*'-operaattorin käyttäminen

'*'-operaattoria voidaan käyttää luettelon replikointiin. Mutta kun sitä käytetään luetteloihin, se voi ketjuttaa ne toistamalla elementtejä.

Tässä on esimerkki:

alkuperäinen_lista = [ 1 , 2 , 3 ]

ketjutettu_luettelo = alkuperäinen_lista * 3

Tulosta ( ketjutettu_luettelo )

Tässä tapauksessa aloitamme 'original_list', joka sisältää elementit [1, 2, 3]. Käyttämällä “*”-operaattoria luomme uuden luettelon, joka on “concatenated_list”, joka koostuu kolmesta alkuperäisen luettelon elementtien toistosta.

Vaikka tämä lähestymistapa on vähemmän yleinen ketjutuksessa, se esittelee Python-operaattoreiden joustavuutta.

Esimerkki 5: Itertools.chain()-funktion käyttäminen

Funktio itertools.chain() on osa 'itertools'-moduulia ja sitä käytetään yhdistämään iteroitava (kuten luettelot, monikot tai muut iteroitavat objektit) yhdeksi iteroitavaksi. Toisin kuin jotkin muut ketjutusmenetelmät, itertools.chain() ei luo uutta luetteloa, vaan tuottaa iteraattorin syötetyt iteroitavien elementtien päälle.

alkaen iter-työkalut tuonti ketju

L1 = [ 1 , 2 , 3 ]

L2 = [ 'x' , 'ja' , 'Kanssa' ]

concatenated_iterable = ketju ( L1 , L2 )

tulosluettelo = lista ( concatenated_iterable )

Tulosta ( tulosluettelo )

Annetussa esimerkissä meillä on kaksi listaa – 'L1' sisältää numeroarvot [1, 2, 3] ja 'L2' sisältää aakkosmerkit ['x', 'y', 'z']. Käyttämällä itertools.chain()-funktiota yhdistämme nämä luettelot yhdeksi iteroitavaksi, jota edustaa 'concatenated_iterable'. Lista()-funktiota käytetään sitten muuttamaan iterable luetteloksi, joka johtaa yhdistettyyn luetteloon [1, 2, 3, 'x', 'y', 'z'].

Esimerkki 6: Listan viipalointi

Tarjoamalla useita indeksejä, luettelon viipalointi on tekniikka, jonka avulla voimme hakea luettelon osajoukon. Siinä käytetään kaksoispiste (:) -operaattoria hakasulkeissa osoittamaan aloitus-, lopetus- ja valinnaisesti askelarvot.

Tässä on esimerkkikoodi:

todellinen_luettelo = [ 1 , 2 , 3 , 4 , 5 ]

sliced_list = todellinen_luettelo [ 1 : 4 ]

Tulosta ( sliced_list )

Aloitamme kuvan alkuperäisellä numeroluettelolla, joka on merkitty 'todellinen_luettelo', joka sisältää elementit [1, 2, 3, 4, 5]. Poimimme tietyn osan luettelosta käyttämällä luettelon viipalointia, joka on tehokas ominaisuus Pythonissa. Tässä tapauksessa käytetään 'actual_list[1:4]' -osia, joka poimii elementit indeksistä 1 indeksiin 3 (mutta ei indeksistä 4). Tuloksena on uusi luettelo, jonka nimi on 'sliced_list', joka sisältää viipaloidun osan [2, 3, 4].

Esimerkki 7: Yhdistäminen Zip()-funktion kanssa

Zip()-funktio yhdistää elementit useista iteroitavista luoden vastaavista elementeistä pareja tai tupleja. Kunkin iteroinnin samassa indeksissä olevia elementtejä käytetään näiden parien luomiseen.

opiskelijat = [ 'Liisa' , 'Bob' , 'Charlie' ]

arvosanat = [ 85 , 92 , 78 ]

opiskelija_luokka_parit = postinumero ( opiskelijat , arvosanat )

result_dict = sanele ( opiskelija_luokka_parit )

Tulosta ( 'Oppilas-luokkaparit:' , result_dict )

Tässä esimerkissä zip()-funktio yhdistää oppilaiden nimet 'oppilaat'-luettelosta vastaaviin arvosanoihin 'arvosanat'-luettelosta, mikä johtaa sanakirjaan, jossa jokainen oppilas yhdistetään heidän arvosanaansa.

Johtopäätös

Lopuksi Python tarjoaa monia tapoja ketjuttaa luettelot, joista jokaisella on etunsa. Kun tutkimme erilaisia ​​menetelmiä, yksinkertaisesta '+'-operaattorista vivahteikkaampiin zip()-toimintoihin, kävi selväksi, että Python palvelee erilaisia ​​ohjelmointityylejä ja -asetuksia. Käsiteltävänä olevasta työstä riippuen tekijät, kuten luettavuus, muistin tehokkuus ja käsiteltävän tiedon tyyppi, määräävät, mikä menetelmä on paras.