Kuidas Pythonis loendeid liita

Kuidas Pythonis Loendeid Liita



Pythoni loendid on mitmekülgsed ja laialdaselt kasutatavad andmestruktuurid, mis võimaldavad üksuste kogude salvestamist ja nendega manipuleerimist. Üks levinud toiming loenditega töötamisel on konkateneerimine, mis hõlmab kahe või enama loendi ühendamist uue loendi loomiseks. See protsess on eriti kasulik andmete ühendamisel või väiksematest suurema loendi loomisel. Loendite ühendamist saab saavutada erinevate meetodite abil ja nende tehnikate mõistmine on Pythonis loenditega tõhusaks töötamiseks ülioluline. Olenemata sellest, kas ühendate arvude, stringide või keerukate objektide loendeid, võimaldab loendi ühendamise valdamine teil andmeid mitmel viisil manipuleerida ja korraldada.

Näide 1: loendite ühendamine operaatoriga '+'.

Loendite ühendamiseks saame Pythonis kasutada operaatorit +. Operaatori „+” abil saate uue loendi moodustamiseks liita kaks või enam loendit. Kui kasutate loenditega operaatorit +, luuakse uus loend ja algsete loendite elemendid kopeeritakse uude loendisse nende ilmumise järjekorras.

Siin on lihtne näide:







leht 1 = [ 1 , 2 , 3 ]

nimekiri2 = [ 4 , 5 , 6 ]

result_list = nimekiri1 + loend2

printida ( result_list )

Sellel joonisel on kaks loendit: “loend1” ja “list2”. Nende üheks loendiks integreerimiseks kasutame operaatorit '+'. Kui seda kasutatakse loenditega, ühendab operaator “+” need, mis tähendab, et see ühendab teise loendi elemendid esimese loendi lõppu. Niisiis, pärast 'result_list = list1 + list2' täitmist sisaldab 'result_list' nii loendi1 kui ka loendi 2 elemente nende ühendamise järjekorras.





Kuigi see meetod on sisutihe, pidage meeles, et see loob uue loendi, mis ei pruugi suurte loendite puhul olla tõhus, kuna koopia loomine on kulukas.





Näide 2: Extend() meetodi kasutamine

Itereeritava elemendid saab lisada olemasoleva loendi lõppu, kasutades meetodit extend(). See muudab algset loendit paigas, erinevalt operaatorist '+', mis loob uue loendi.

Oletame, et meil on klassi õpilaste loend ja me tahame seda loendit laiendada, lisades uute õpilaste nimed, kes on hiljuti liitunud, kasutades meetodit extend(). Siin on, kuidas saate seda teha.



klassi_õpilased = [ 'Alice' , 'Bella' , 'Charlie' ]

uued_õpilased = [ 'David' , 'Eva' , 'Adam' ]

klassi_õpilased. pikendada ( uued_õpilased )

printida ( 'Värskendatud õpilaste nimekiri:' , klassi_õpilased )

Selles näites sisaldab esialgne loend, mille nimi on 'class_students', olemasolevate õpilaste nimesid. Loend „uued_õpilased” sisaldab hiljuti klassiga liitunud õpilaste nimesid. Extended() meetodi rakendamisel lisame uute õpilaste nimed algse nimekirja lõppu.

Näide 3: Operaatori „+=” rakendamine ühendamiseks

Operaator “+=” on meetodi extend() lühene. See muudab loendit paigas, kombineerides parempoolse loendi elemendid vasakpoolseks loendiks.

Oletame, et meil on lemmikvärvide loend ja me tahame seda värskendada, lisades operaatori „+=” abil rohkem värve.

lemmik_värvid = [ 'sinine' , 'roheline' , 'punane' ]

täiendavad_värvid = [ 'lilla' , 'oranž' , 'kollane' ]

lemmik_värvid + = täiendavad_värvid

printida ( 'Värskendatud lemmikvärvid:' , lemmik_värvid )

Selle stsenaariumi korral alustame oma lemmikvärvide loendiga, mida tähistab 'lemmikvärvid'. Seejärel on meil mõned uued värvid, mida sooviksime lisada loendisse „Additional_colors”. Kasutades operaatorit “+=”, kombineerime uued värvid olemasolevate lemmikutega, muutes loendit “lemmikvärvid”.

Pärast toimingut, kui prindime välja „Meie värskendatud lemmikvärvid“, näeme järgmist tulemust:

Näide 4: '*' operaatori kasutamine

Operaatorit “*” saab kasutada loendi replikatsiooniks. Kuid loenditele rakendatuna võib see elemente kordades need liita.

Siin on näide:

algne_loend = [ 1 , 2 , 3 ]

konkateneeritud_loend = originaal_loend * 3

printida ( konkateneeritud_loend )

Sel juhul alustame 'originaalloendiga', mis sisaldab elemente [1, 2, 3]. Kasutades operaatorit “*”, loome uue loendi, mis on “concatenated_list”, mis koosneb kolmest algse loendi elementide kordusest.

Kuigi see lähenemine on konkateneerimisel vähem levinud, näitab see Pythoni operaatorite paindlikkust.

Näide 5: Funktsiooni Itertools.chain() rakendamine

Funktsioon itertools.chain() on osa moodulist 'itertools' ja seda kasutatakse itereeritava (nt loendite, korteežide või muude itereeritavate objektide) ühendamiseks üheks itereeritavaks. Erinevalt mõnest teisest ühendamismeetodist ei loo itertools.chain() uut loendit, vaid loob iteraatori sisenditereeritavate elementide üle.

alates itertitööriistad importida kett

L1 = [ 1 , 2 , 3 ]

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

konkateneeritud_itereeritav = kett ( L1 , L2 )

result_list = nimekirja ( konkateneeritud_itereeritav )

printida ( result_list )

Antud näites on meil kaks loendit – “L1” sisaldab arvväärtusi [1, 2, 3] ja “L2” sisaldab tähemärke [“x”, “y”, “z”]. Funktsiooni itertools.chain() abil ühendame need loendid üheks itereeritavaks, mida tähistab 'concatenated_iterable'. Funktsiooni list() rakendatakse seejärel itereeritava loendiks teisendamiseks, mille tulemuseks on kombineeritud loend [1, 2, 3, 'x', 'y', 'z'].

Näide 6: Loendi viilutamine

Indekside vahemiku pakkumisega on loendi viilutamine meetod, mis võimaldab meil hankida loendi alamhulka. See hõlmab kooloni (:) operaatori kasutamist nurksulgudes, et näidata algus-, lõpp- ja valikuliselt sammu väärtusi.

Siin on näidiskood:

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

viilutatud_loend = tegelik_loend [ 1 : 4 ]

printida ( viilutatud_loend )

Alustame illustratsiooni algse numbriloendiga, mis on tähistatud kui 'tegelik_loend', mis sisaldab elemente [1, 2, 3, 4, 5]. Eraldame loendist konkreetse segmendi, kasutades loendi viilutamist, mis on Pythoni võimas funktsioon. Sel juhul kasutatakse lõiku „actual_list[1:4]” ja see valib elemendid indeksist 1 kuni indeksini 3 (kuid mitte indeksist 4). Tulemuseks on uus loend nimega 'sliced_list', mis sisaldab viilutatud osa [2, 3, 4].

Näide 7: Konkateneerimine funktsiooniga Zip()

Funktsioon zip() ühendab mitme itereeritava elemendid, luues vastavate elementide paarid või kordused. Nende paaride loomiseks kasutatakse iga iteratsiooni sama indeksi elemente.

õpilased = [ 'Alice' , 'Bob' , 'Charlie' ]

hinded = [ 85 , 92 , 78 ]

õpilaste_hinnete_paarid = tõmblukk ( õpilased , hinded )

tulemus_dikt = dikt ( õpilaste_hinnete_paarid )

printida ( 'Üliõpilaste klasside paarid:' , tulemus_dikt )

Selles näites seob funktsioon zip() õpilaste nimed õpilaste loendist nende vastavate hinnetega loendist 'hinded', mille tulemuseks on sõnastik, kus iga õpilane on seotud nende vastava hindega.

Järeldus

Kokkuvõtteks võib öelda, et Python pakub loendite ühendamiseks paljusid viise, millest igaühel on oma eelised. Uurides erinevaid meetodeid, alates lihtsast „+” operaatorist ja lõpetades nüansirikkama funktsiooniga zip(), sai selgeks, et Python vastab erinevatele programmeerimisstiilidele ja eelistustele. Sõltuvalt käsilolevast tööst määravad sellised tegurid nagu loetavus, mälu tõhusus ja töödeldavate andmete tüüp, milline meetod on parim.