Kako spojiti popise u Pythonu

Kako Spojiti Popise U Pythonu



Python popisi su svestrane i široko korištene podatkovne strukture koje omogućuju pohranu i manipulaciju zbirkama stavki. Jedna uobičajena operacija pri radu s popisima je ulančavanje koje uključuje kombiniranje dva ili više popisa za stvaranje novog popisa. Ovaj je postupak osobito koristan pri spajanju podataka ili stvaranju većeg popisa od manjih. Ulančavanje popisa može se postići različitim metodama, a razumijevanje ovih tehnika ključno je za učinkovit rad s popisima u Pythonu. Bilo da spajate popise brojeva, nizova ili složenih objekata, ovladavanje ulančavanjem popisa omogućuje vam manipuliranje i organiziranje podataka na različite načine.

Primjer 1: Spajanje popisa s operatorom “+”.

Možemo koristiti operator “+” u Pythonu za spajanje popisa. Pomoću operatora “+” možete spojiti dva ili više popisa kako biste formirali novi popis. Kada koristite operator “+” s popisima, stvara se novi popis i elementi izvornih popisa kopiraju se na novi popis redoslijedom kojim se pojavljuju.

Evo jednostavnog primjera:







list 1 = [ 1 , 2 , 3 ]

lista2 = [ 4 , 5 , 6 ]

popis_rezultata = popis1 + popis2

ispisati ( popis_rezultata )

Na ovoj ilustraciji imamo dva popisa: “list1” i “list2”. Koristimo operator “+” da ih integriramo u jedan popis. Kada se koristi s popisima, operator “+” ih spaja što znači da spaja elemente drugog popisa s krajem prvog. Dakle, nakon izvođenja “result_list = list1 + list2″, “result_list” će sadržavati elemente i “list1” i “list2” redoslijedom kojim su spojeni.





Iako je ova metoda koncizna, imajte na umu da stvara novi popis koji možda neće biti učinkovit za velike popise zbog troškova stvaranja kopije.





Primjer 2: Korištenje metode Extend().

Stavke iterable mogu se dodati na kraj postojećeg popisa pomoću metode extend(). On mijenja izvorni popis na mjestu, za razliku od operatora “+” koji stvara novi popis.

Pretpostavimo da imamo popis učenika u razredu i želimo proširiti ovaj popis dodavanjem imena novih učenika koji su se nedavno pridružili metodom extend(). Evo kako to možete učiniti:



učenici_razreda = [ 'Alice' , 'Bella' , 'Charlie' ]

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

učenici_razreda. proširiti ( novi_studenti )

ispisati ( 'Ažurirani popis studenata:' , učenici_razreda )

U ovom primjeru, izvorni popis koji je 'class_students' sadrži imena postojećih učenika. Popis “new_students” uključuje imena učenika koji su se nedavno pridružili razredu. Primjenom metode extend() dodajemo imena novih studenata na kraj izvorne liste.

Primjer 3: Primjena operatora “+=” za ulančavanje

Operator “+=” skraćenica je za metodu extend(). On mijenja popis na mjestu, kombinirajući elemente popisa s desne strane u popis s lijeve strane.

Pretpostavimo da imamo popis omiljenih boja i želimo ga ažurirati dodavanjem više boja pomoću operatora “+=”.

omiljene_boje = [ 'plavo' , 'zeleno' , 'Crvena' ]

dodatne_boje = [ 'ljubičasta' , 'naranča' , 'žuta boja' ]

omiljene_boje + = dodatne_boje

ispisati ( 'Ažurirane omiljene boje:' , omiljene_boje )

U ovom scenariju počinjemo s popisom naših omiljenih boja koje predstavlja 'favorite_colors'. Zatim, imamo neke nove boje koje bismo željeli uključiti u popis 'dodatne_boje'. Pomoću operatora “+=” kombiniramo nove boje s našim postojećim favoritima, mijenjajući popis “favorite_colors”.

Nakon operacije, kada ispišemo 'Naše ažurirane omiljene boje', možemo vidjeti sljedeći rezultat:

Primjer 4: Korištenje operatora “*”.

Operator “*” može se koristiti za replikaciju popisa. Ali kada se primijeni na popise, može ih spojiti ponavljanjem elemenata.

Evo primjera:

izvorni_popis = [ 1 , 2 , 3 ]

ulančani_list = izvorni_popis * 3

ispisati ( ulančani_list )

U ovom slučaju, počinjemo s 'original_list' koji sadrži elemente [1, 2, 3]. Upotrebom operatora “*” stvaramo novi popis koji je “concatenated_list” koji se sastoji od tri ponavljanja elemenata s izvornog popisa.

Iako je ovaj pristup manje uobičajen za ulančavanje, on pokazuje fleksibilnost Pythonovih operatora.

Primjer 5: Primjena funkcije Itertools.chain().

Funkcija itertools.chain() dio je modula 'itertools' i koristi se za ulančavanje iterabilnog (poput popisa, torki ili drugih iterable objekata) u jedan 'iterable'. Za razliku od nekih drugih metoda ulančavanja, itertools.chain() ne stvara novi popis već proizvodi iterator nad elementima ulaznih iterables.

iz itertools uvoz lanac

L1 = [ 1 , 2 , 3 ]

L2 = [ 'x' , 'i' , 'S' ]

ulančano_iterable = lanac ( L1 , L2 )

popis_rezultata = popis ( ulančano_iterable )

ispisati ( popis_rezultata )

U navedenom primjeru imamo dvije liste – “L1” sadrži numeričke vrijednosti [1, 2, 3] i “L2” sadrži abecedne znakove [“x”, “y”, “z”]. Koristeći funkciju itertools.chain(), spajamo ove popise u jednu iterable, koju predstavlja 'concatenated_iterable'. Funkcija list() se zatim primjenjuje za pretvaranje iterabilnog u popis koji rezultira kombiniranim popisom [1, 2, 3, “x”, “y”, “z”].

Primjer 6: Rezanje popisa

Omogućujući niz indeksa, rezanje popisa je tehnika koja nam omogućuje dohvaćanje podskupa popisa. Uključuje korištenje operatora dvotočke (:) unutar uglatih zagrada za označavanje vrijednosti početka, završetka i, po izboru, vrijednosti koraka.

Evo primjera koda:

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

narezana_popis = stvarni_popis [ 1 : 4 ]

ispisati ( narezana_popis )

Ilustraciju započinjemo s izvornim popisom brojeva koji je označen kao “actual_list” koji sadrži elemente [1, 2, 3, 4, 5]. Izdvajamo određeni segment popisa korištenjem rezanja popisa koje je moćna značajka u Pythonu. Odsječak 'actual_list[1:4]' koristi se u ovom slučaju i odabire elemente od indeksa 1 do indeksa 3 (ali ne iz indeksa 4). Rezultat je novi popis, nazvan 'sliced_list', koji sadrži isječeni dio [2, 3, 4].

Primjer 7: Ulančavanje s funkcijom Zip().

Funkcija zip() kombinira elemente iz više iterables, stvarajući parove ili torke odgovarajućih elemenata. Elementi svake iteracije na istom indeksu koriste se za stvaranje ovih parova.

učenicima = [ 'Alice' , 'Bob' , 'Charlie' ]

ocjene = [ 85 , 92 , 78 ]

parovi_ocjena_učenika = zip ( učenicima , ocjene )

rezultat_dikt = izreka ( parovi_ocjena_učenika )

ispisati ( 'Parovi učenik-razred:' , rezultat_dikt )

U ovom primjeru funkcija zip() uparuje imena učenika s popisa 'studenti' s njihovim odgovarajućim ocjenama s popisa 'ocjene', što rezultira rječnikom u kojem je svaki učenik povezan sa svojom ocjenom.

Zaključak

Zaključno, Python nudi mnoštvo načina za ulančavanje popisa, od kojih svaki ima svoje prednosti. Dok smo istraživali različite metode, od jednostavnog operatora '+' do nijansiranije funkcije zip(), postalo je očito da Python zadovoljava različite programske stilove i postavke. Ovisno o poslu, čimbenici poput čitljivosti, učinkovitosti memorije i vrste podataka koji se obrađuju odredit će koja je metoda najbolja.