Jak zřetězit seznamy v Pythonu

Jak Zretezit Seznamy V Pythonu



Seznamy Python jsou všestranné a široce používané datové struktury, které umožňují ukládání a manipulaci s kolekcemi položek. Jednou z běžných operací při práci se seznamy je zřetězení, které zahrnuje spojení dvou nebo více seznamů za účelem vytvoření nového seznamu. Tento proces je užitečný zejména při slučování dat nebo vytváření většího seznamu z menších. Zřetězení seznamů lze dosáhnout pomocí různých metod a porozumění těmto technikám je zásadní pro efektivní práci se seznamy v Pythonu. Ať už slučujete seznamy čísel, řetězců nebo složitých objektů, zvládnutí zřetězení seznamů vám umožní manipulovat a organizovat data různými způsoby.

Příklad 1: Zřetězení seznamů s operátorem „+“.

Ke zřetězení seznamů můžeme v Pythonu použít operátor „+“. Pomocí operátoru „+“ můžete spojit dva nebo více seznamů a vytvořit nový seznam. Když u seznamů použijete operátor „+“, vytvoří se nový seznam a prvky původních seznamů se zkopírují do nového seznamu v pořadí, v jakém se zobrazují.

Zde je jednoduchý příklad:







list 1 = [ 1 , 2 , 3 ]

seznam2 = [ 4 , 5 , 6 ]

seznam_výsledků = seznam1 + seznam2

tisk ( seznam_výsledků )

Na tomto obrázku máme dva seznamy: „seznam1“ a „seznam2“. K jejich integraci do jednoho seznamu používáme operátor „+“. Při použití se seznamy je operátor „+“ zřetězí, což znamená, že připojí prvky druhého seznamu na konec prvního. Takže po provedení „seznam_výsledků = seznam1 + seznam2″ bude „seznam_výsledků“ obsahovat prvky „seznam1“ a „seznam2“ v pořadí, v jakém byly zřetězeny.





I když je tato metoda stručná, mějte na paměti, že vytvoří nový seznam, který nemusí být efektivní pro velké seznamy kvůli režii vytváření kopie.





Příklad 2: Využití metody Extend().

Položky iterovatelného lze připojit na konec existujícího seznamu pomocí metody extend(). Upravuje původní seznam na místě, na rozdíl od operátoru „+“, který vytváří nový seznam.

Předpokládejme, že máme seznam studentů ve třídě a chceme tento seznam rozšířit přidáním jmen nových studentů, kteří se nedávno připojili pomocí metody extend(). Zde je návod, jak na to:



třída_studenti = [ 'Alice' , 'Bella' , 'Kája' ]

noví_studenti = [ 'David' , 'Eva' , 'Adam' ]

třída_studenti. rozšířit ( noví_studenti )

tisk ( 'Aktualizovaný seznam studentů:' , třída_studenti )

V tomto příkladu původní seznam, který je „class_students“, obsahuje jména stávajících studentů. Seznam „noví_studenti“ obsahuje jména studentů, kteří se nedávno připojili ke kurzu. Použitím metody extend() přidáme jména nových studentů na konec původního seznamu.

Příklad 3: Použití operátoru „+=“ pro zřetězení

Operátor „+=“ je zkratkou pro metodu extend(). Upravuje seznam na místě, kombinuje prvky seznamu na pravé straně do seznamu na levé straně.

Předpokládejme, že máme seznam oblíbených barev a chceme jej aktualizovat přidáním dalších barev pomocí operátoru „+=“.

oblíbené_barvy = [ 'modrý' , 'zelená' , 'Červené' ]

dodatečné_barvy = [ 'nachový' , 'oranžový' , 'žlutá' ]

oblíbené_barvy + = dodatečné_barvy

tisk ( 'Aktualizované oblíbené barvy:' , oblíbené_barvy )

V tomto scénáři začneme se seznamem našich oblíbených barev, který je reprezentován „favorite_colors“. Pak máme nějaké nové barvy, které bychom rádi zahrnuli do seznamu „další_barvy“. Pomocí operátoru „+=“ zkombinujeme nové barvy s našimi stávajícími oblíbenými a upravíme seznam „oblíbené_barvy“.

Po operaci, když vytiskneme „Naše aktualizované oblíbené barvy“, můžeme vidět následující výsledek:

Příklad 4: Použití operátoru „*“.

Operátor „*“ lze použít pro replikaci seznamu. Ale při aplikaci na seznamy je může zřetězit opakováním prvků.

Zde je příklad:

původní_seznam = [ 1 , 2 , 3 ]

zřetězený_seznam = původní_seznam * 3

tisk ( zřetězený_seznam )

V tomto případě začneme s „original_list“, který obsahuje prvky [1, 2, 3]. Pomocí operátoru „*“ vytvoříme nový seznam, kterým je „concatenated_list“, který se skládá ze tří opakování prvků z původního seznamu.

I když je tento přístup pro zřetězení méně běžný, ukazuje flexibilitu operátorů Pythonu.

Příklad 5: Použití funkce Itertools.chain()

Funkce itertools.chain() je součástí modulu „itertools“ a používá se ke zřetězení iterovatelného (jako jsou seznamy, n-tice nebo jiné iterovatelné objekty) do jednoho „iterovatelného“. Na rozdíl od některých jiných metod zřetězení itertools.chain() nevytváří nový seznam, ale vytváří iterátor nad prvky vstupních iterovatelných položek.

z itertools import řetěz

L1 = [ 1 , 2 , 3 ]

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

concatenated_iterable = řetěz ( L1 , L2 )

seznam_výsledků = seznam ( concatenated_iterable )

tisk ( seznam_výsledků )

V uvedeném příkladu máme dva seznamy – „L1“ obsahuje číselné hodnoty [1, 2, 3] a „L2“ obsahuje abecední znaky [„x“, „y“, „z“]. Pomocí funkce itertools.chain() zřetězíme tyto seznamy do jediné iterovatelné, reprezentované „concatenated_iterable“. Funkce list() se poté použije k převedení iterovatelného na seznam, jehož výsledkem je kombinovaný seznam [1, 2, 3, „x“, „y“, „z“].

Příklad 6: Rozřezávání seznamu

Poskytováním řady indexů je dělení seznamu technikou, která nám umožňuje získat podmnožinu seznamu. Zahrnuje použití operátoru dvojtečka (:) v hranatých závorkách k označení počátečních, koncových a volitelných hodnot kroku.

Zde je ukázkový kód:

aktuální_seznam = [ 1 , 2 , 3 , 4 , 5 ]

sliced_list = aktuální_seznam [ 1 : 4 ]

tisk ( sliced_list )

Ilustraci začneme původním seznamem čísel, který je označen jako „aktuální_seznam“, který obsahuje prvky [1, 2, 3, 4, 5]. Extrahujeme konkrétní segment seznamu pomocí dělení seznamu, což je výkonná funkce v Pythonu. V tomto případě se používá řez „aktuální_seznam[1:4]“ a vybírá prvky od indexu 1 do indexu 3 (ale ne z indexu 4). Výsledkem je nový seznam s názvem „sliced_list“, který obsahuje rozdělenou část [2, 3, 4].

Příklad 7: Zřetězení s funkcí Zip().

Funkce zip() kombinuje prvky z více iterovatelných prvků a vytváří dvojice nebo n-tice odpovídajících prvků. K vytvoření těchto párů se používají prvky každé iterace na stejném indexu.

studentů = [ 'Alice' , 'Bob' , 'Kája' ]

stupně = [ 85 , 92 , 78 ]

student_grade_pairs = zip ( studentů , stupně )

result_dict = diktát ( student_grade_pairs )

tisk ( 'Páry student-ročník:' , result_dict )

V tomto příkladu funkce zip() spáruje jména studentů ze seznamu „studentů“ s jejich odpovídajícími známkami ze seznamu „známek“, což vede ke slovníku, kde je každý student spojen s jejich příslušnou známkou.

Závěr

Závěrem lze říci, že Python nabízí mnoho způsobů, jak zřetězit seznamy, z nichž každý má své výhody. Když jsme zkoumali různé metody, od jednoduchého operátoru „+“ po jemnější funkci zip(), ukázalo se, že Python vyhovuje různým programovacím stylům a preferencím. V závislosti na dané práci faktory, jako je čitelnost, efektivita paměti a typ zpracovávaných dat, určí, která metoda je nejlepší.