Ako zreťaziť zoznamy v Pythone

Ako Zretazit Zoznamy V Pythone



Python zoznamy sú všestranné a široko používané dátové štruktúry, ktoré umožňujú ukladanie a manipuláciu s kolekciami položiek. Jednou z bežných operácií pri práci so zoznamami je zreťazenie, ktoré zahŕňa spojenie dvoch alebo viacerých zoznamov na vytvorenie nového zoznamu. Tento proces je užitočný najmä pri spájaní údajov alebo vytváraní väčšieho zoznamu z menších. Reťazenie zoznamov je možné dosiahnuť pomocou rôznych metód a pochopenie týchto techník je základom efektívnej práce so zoznamami v Pythone. Či už zlučujete zoznamy čísel, reťazcov alebo zložitých objektov, zvládnutie zreťazenia zoznamov vám umožní manipulovať a organizovať údaje rôznymi spôsobmi.

Príklad 1: Reťazenie zoznamov s operátorom „+“.

Na zreťazenie zoznamov môžeme v Pythone použiť operátor „+“. Pomocou operátora „+“ môžete spojiť dva alebo viac zoznamov a vytvoriť nový zoznam. Keď pri zoznamoch použijete operátor „+“, vytvorí sa nový zoznam a prvky pôvodných zoznamov sa skopírujú do nového zoznamu v poradí, v akom sa zobrazujú.

Tu je jednoduchý príklad:







list 1 = [ 1 , 2 , 3 ]

zoznam2 = [ 4 , 5 , 6 ]

zoznam_výsledkov = zoznam1 + zoznam2

vytlačiť ( zoznam_výsledkov )

Na tomto obrázku máme dva zoznamy: „zoznam1“ a „zoznam2“. Na ich integráciu do jedného zoznamu používame operátor „+“. Pri použití so zoznamami ich operátor „+“ spája, čo znamená, že spája prvky druhého zoznamu s koncom prvého. Takže po vykonaní „zoznam_výsledkov = zoznam1 + zoznam2″ bude „zoznam_výsledkov“ obsahovať prvky „zoznam1“ a „zoznam2“ v poradí, v akom boli zreťazené.





Aj keď je táto metóda stručná, majte na pamäti, že vytvorí nový zoznam, ktorý nemusí byť efektívny pre veľké zoznamy kvôli réžii vytvárania kópie.





Príklad 2: Použitie metódy Extend().

Položky iterovateľného sa dajú pripojiť na koniec existujúceho zoznamu pomocou metódy extend(). Upravuje pôvodný zoznam na mieste, na rozdiel od operátora „+“, ktorý vytvára nový zoznam.

Predpokladajme, že máme zoznam študentov v triede a chceme tento zoznam rozšíriť pridaním mien nových študentov, ktorí sa nedávno pripojili pomocou metódy extend(). Tu je postup, ako na to:



class_students = [ 'Alice' , 'Bella' , 'Charlie' ]

noví_študenti = [ 'David' , 'Eva' , 'Adam' ]

class_students. predĺžiť ( noví_študenti )

vytlačiť ( 'Aktualizovaný zoznam študentov:' , class_students )

V tomto príklade pôvodný zoznam „class_students“ obsahuje mená existujúcich študentov. Zoznam „noví_študenti“ obsahuje mená študentov, ktorí sa nedávno pripojili k triede. Použitím metódy extend() pridáme mená nových študentov na koniec pôvodného zoznamu.

Príklad 3: Použitie operátora „+=“ na zreťazenie

Operátor „+=“ je skratka pre metódu extend(). Upravuje zoznam na mieste kombinovaním prvkov zoznamu na pravej strane do zoznamu na ľavej strane.

Predpokladajme, že máme zoznam obľúbených farieb a chceme ho aktualizovať pridaním ďalších farieb pomocou operátora „+=“.

obľúbené_farby = [ 'Modrá' , 'zelená' , 'červená' ]

doplnkové_farby = [ 'Fialová' , 'oranžový' , 'žltá' ]

obľúbené_farby + = doplnkové_farby

vytlačiť ( 'Aktualizované obľúbené farby:' , obľúbené_farby )

V tomto scenári začneme so zoznamom našich obľúbených farieb, ktorý predstavuje „favorite_colors“. Potom máme niekoľko nových farieb, ktoré by sme chceli zahrnúť do zoznamu „ďalšie_farby“. Pomocou operátora „+=“ skombinujeme nové farby s našimi existujúcimi obľúbenými farbami a upravíme zoznam „obľúbené_farby“.

Po operácii, keď vytlačíme „Naše aktualizované obľúbené farby“, môžeme vidieť nasledujúci výsledok:

Príklad 4: Použitie operátora „*“.

Operátor „*“ možno použiť na replikáciu zoznamu. Ale keď sa použije na zoznamy, môže ich zreťaziť opakovaním prvkov.

Tu je príklad:

pôvodný_zoznam = [ 1 , 2 , 3 ]

zreťazený_zoznam = pôvodný_zoznam * 3

vytlačiť ( zreťazený_zoznam )

V tomto prípade začíname s „original_list“, ktorý obsahuje prvky [1, 2, 3]. Pomocou operátora „*“ vytvoríme nový zoznam, ktorým je „concatenated_list“, ktorý pozostáva z troch opakovaní prvkov z pôvodného zoznamu.

Aj keď je tento prístup menej bežný pre zreťazenie, ukazuje flexibilitu operátorov Pythonu.

Príklad 5: Aplikácia funkcie Itertools.chain().

Funkcia itertools.chain() je súčasťou modulu „itertools“ a používa sa na zreťazenie iterovateľného (ako sú zoznamy, n-tice alebo iné iterovateľné objekty) do jedného „iterovateľného“. Na rozdiel od niektorých iných metód zreťazenia itertools.chain() nevytvára nový zoznam, ale vytvára iterátor nad prvkami vstupných iterovateľných prvkov.

od itertools importovať reťaz

L1 = [ 1 , 2 , 3 ]

L2 = [ 'X' , 'a' , 's' ]

zreťazený_iterovateľný = reťaz ( L1 , L2 )

zoznam_výsledkov = zoznam ( zreťazený_iterovateľný )

vytlačiť ( zoznam_výsledkov )

V uvedenom príklade máme dva zoznamy – „L1“ obsahuje číselné hodnoty [1, 2, 3] a „L2“ obsahuje abecedné znaky [„x“, „y“, „z“]. Pomocou funkcie itertools.chain() tieto zoznamy zreťazíme do jedného iterovateľného, ​​reprezentovaného „concatenated_iterable“. Potom sa použije funkcia list() na konverziu iterovateľného na zoznam, ktorého výsledkom je kombinovaný zoznam [1, 2, 3, „x“, „y“, „z“].

Príklad 6: Rozdelenie zoznamu

Poskytnutím radu indexov je delenie zoznamu technikou, ktorá nám umožňuje získať podmnožinu zoznamu. Zahŕňa použitie operátora dvojbodky (:) v hranatých zátvorkách na označenie hodnôt začiatku, konca a voliteľne aj kroku.

Tu je príklad kódu:

skutočný_zoznam = [ 1 , 2 , 3 , 4 , 5 ]

sliced_list = skutočný_zoznam [ 1 : 4 ]

vytlačiť ( sliced_list )

Ilustráciu začneme pôvodným zoznamom čísel, ktorý je označený ako „aktuálny_zoznam“, ktorý obsahuje prvky [1, 2, 3, 4, 5]. Extrahujeme konkrétny segment zoznamu pomocou krájania zoznamu, čo je výkonná funkcia v Pythone. V tomto prípade sa používa segment „aktuálny_zoznam[1:4]“ a vyberá prvky od indexu 1 do indexu 3 (ale nie z indexu 4). Výsledkom je nový zoznam s názvom „sliced_list“, ktorý obsahuje rozrezanú časť [2, 3, 4].

Príklad 7: Reťazenie s funkciou Zip().

Funkcia zip() kombinuje prvky z viacerých iterovateľných prvkov a vytvára dvojice alebo n-tice zodpovedajúcich prvkov. Na vytvorenie týchto párov sa používajú prvky každej iterácie v rovnakom indexe.

študentov = [ 'Alice' , 'Bob' , 'Charlie' ]

ročníkov = [ 85 , 92 , 78 ]

študentské_stupňové_páry = PSČ ( študentov , ročníkov )

result_dict = diktát ( študentské_stupňové_páry )

vytlačiť ( 'Páry študent-ročník:' , result_dict )

V tomto príklade funkcia zip() spáruje mená študentov zo zoznamu „študentov“ s ich zodpovedajúcimi známkami zo zoznamu „známok“, čo vedie k slovníku, v ktorom je každý študent spojený s príslušnou známkou.

Záver

Na záver, Python ponúka množstvo spôsobov, ako zreťaziť zoznamy, pričom každý má svoje výhody. Keď sme skúmali rôzne metódy, od jednoduchého operátora „+“ po jemnejšiu funkciu zip(), ukázalo sa, že Python vyhovuje rôznym programovacím štýlom a preferenciám. V závislosti od vykonávanej práce faktory ako čitateľnosť, efektívnosť pamäte a typ spracovávaných údajov určia, ktorá metóda je najlepšia.