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 ketjuL1 = [ 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.