Listák összefűzése Pythonban

Listak Osszefuzese Pythonban



A Python listák sokoldalú és széles körben használt adatstruktúrák, amelyek lehetővé teszik az elemek gyűjteményeinek tárolását és kezelését. A listákkal végzett munka egyik gyakori művelete az összefűzés, amely magában foglalja két vagy több lista kombinálását egy új lista létrehozásához. Ez a folyamat különösen akkor hasznos, ha összevonja az adatokat, vagy nagyobb listát hoz létre a kisebbekből. A listák összefűzése különféle módszerekkel érhető el, és ezeknek a technikáknak a megértése alapvető fontosságú a listákkal való hatékony munkavégzéshez Pythonban. Függetlenül attól, hogy számok, karakterláncok vagy összetett objektumok listáit egyesíti, a lista-összefűzés elsajátítása lehetővé teszi az adatok sokféle módon történő kezelését és rendszerezését.

1. példa: Listák összefűzése „+” operátorral

A Pythonban a „+” operátort használhatjuk a listák összefűzésére. A „+” operátor használatával két vagy több listát egyesíthet új lista létrehozásához. Ha a „+” operátort listákkal használja, egy új lista jön létre, és az eredeti listák elemei a megjelenésük sorrendjében másolódnak az új listába.

Íme egy egyszerű példa:







1. lap = [ 1 , 2 , 3 ]

lista2 = [ 4 , 5 , 6 ]

eredmény_lista = lista1 + lista2

nyomtatás ( eredmény_lista )

Ezen az ábrán két lista található: „lista1” és „lista2”. A „+” operátort használjuk, hogy egyetlen listába integráljuk őket. Listákkal használva a „+” operátor összefűzi azokat, ami azt jelenti, hogy a második lista elemeit az első végéhez kapcsolja. Tehát az „eredménylista = lista1 + lista2” végrehajtása után az „eredménylista” tartalmazza a „list1” és a „list2” elemeit is abban a sorrendben, amelyben összefűzték őket.





Bár ez a módszer tömör, ne feledje, hogy új listát hoz létre, amely nem biztos, hogy hatékony nagy listák esetén a másolat létrehozásának többletköltsége miatt.





2. példa: Az Extend() metódus használata

Az iterable elemei az extend() metódussal hozzáfűzhetők egy létező lista végéhez. A helyén módosítja az eredeti listát, ellentétben a „+” operátorral, amely új listát hoz létre.

Tegyük fel, hogy van egy osztály tanulóinak listája, és szeretnénk ezt a listát kibővíteni az expand() metódussal nemrég csatlakozott új tanulók nevének hozzáadásával. A következőképpen járhat el:



osztály_diákok = [ 'Alice' , 'Bella' , 'Charlie' ]

új_diákok = [ 'Dávid' , 'Eva' , 'Ádám' ]

osztály_diákok. kiterjeszt ( új_diákok )

nyomtatás ( 'A tanulók frissített listája:' , osztály_diákok )

Ebben a példában az eredeti lista, amely „class_students” a meglévő tanulók neveit tartalmazza. Az „új_diákok” listán azon tanulók nevei szerepelnek, akik nemrég csatlakoztak az osztályhoz. Az extend() metódus alkalmazásával az új tanulók nevét az eredeti lista végére adjuk.

3. példa: A „+=” operátor alkalmazása az összefűzéshez

A „+=” operátor az extend() metódus rövidítése. Helyben módosítja a listát, a jobb oldali lista elemeit kombinálja a bal oldali listával.

Tegyük fel, hogy van egy listánk a kedvenc színeinkről, és azt szeretnénk frissíteni további színek hozzáadásával a „+=” operátor használatával.

kedvenc_színek = [ 'kék' , 'zöld' , 'piros' ]

további_színek = [ 'lila' , 'narancs' , 'sárga' ]

kedvenc_színek + = további_színek

nyomtatás ( 'Frissített kedvenc színek:' , kedvenc_színek )

Ebben a forgatókönyvben a kedvenc színeink listájával kezdjük, amelyet a „kedvenc_színek” jelöl. Aztán van néhány új színünk, amelyeket szeretnénk felvenni az „additional_colors” listába. A „+=” operátor segítségével az új színeket kombináljuk a meglévő kedvenceinkkel, módosítva a „kedvenc_színek” listát.

A művelet után, amikor kinyomtatjuk a „Frissített kedvenc színeinket”, a következő eredményt láthatjuk:

4. példa: A „*” operátor használata

A „*” operátor használható a lista replikációjához. De ha listákra alkalmazza, összefűzheti azokat az elemek ismétlésével.

Íme egy példa:

eredeti_lista = [ 1 , 2 , 3 ]

összefűzött_lista = eredeti_lista * 3

nyomtatás ( összefűzött_lista )

Ebben az esetben egy „eredeti_listával” kezdjük, amely tartalmazza az [1, 2, 3] elemeket. A „*” operátor használatával létrehozunk egy új listát, amely a „concatenated_list”, amely az eredeti lista elemeinek három ismétlődéséből áll.

Bár ez a megközelítés kevésbé gyakori az összefűzésnél, bemutatja a Python operátorainak rugalmasságát.

5. példa: Az Itertools.chain() függvény alkalmazása

Az itertools.chain() függvény az „itertools” modul része, és az iterálható elemek (például listák, sorok vagy más iterálható objektumok) egyetlen „iterable”-ba történő összefűzésére szolgál. Más összefűzési módszerekkel ellentétben az itertools.chain() nem hoz létre új listát, hanem egy iterátort hoz létre a bemeneti iterable elemek elemei felett.

tól től itertools import lánc

L1 = [ 1 , 2 , 3 ]

L2 = [ 'x' , 'és' , 'Val vel' ]

concatenated_iterable = lánc ( L1 , L2 )

eredmény_lista = lista ( concatenated_iterable )

nyomtatás ( eredmény_lista )

Az adott példában két listánk van – az „L1” a számértékeket [1, 2, 3], az „L2” pedig az alfabetikus karaktereket ['x', 'y', 'z'] tartalmazza. Az itertools.chain() függvény használatával ezeket a listákat egyetlen iterálhatóvá fűzzük össze, amelyet a „concatenated_iterable” képvisel. A list() függvény ezután az iterálható listává alakítja, amely a kombinált listát eredményezi [1, 2, 3, 'x', 'y', 'z'].

6. példa: Listaszeletelés

Az indexek tartományának megadásával a listaszeletelés egy olyan technika, amely lehetővé teszi a lista egy részhalmazának lekérését. Ez magában foglalja a kettőspont (:) operátor használatát a szögletes zárójelben a kezdési, leállítási és opcionálisan lépésértékek jelzésére.

Íme a példakód:

tényleges_lista = [ 1 , 2 , 3 , 4 , 5 ]

szeletelt_lista = tényleges_lista [ 1 : 4 ]

nyomtatás ( szeletelt_lista )

Az illusztrációt egy eredeti számlistával kezdjük, amelyet „actual_list”-ként jelölünk, és amely az [1, 2, 3, 4, 5] elemeket tartalmazza. A lista egy meghatározott szegmensét bontjuk ki a listaszeletelés használatával, amely a Python hatékony funkciója. Ebben az esetben az „actual_list[1:4]” szelet használatos, amely az 1-es indextől a 3-as indexig választja ki az elemeket (de nem a 4-es indexből). Az eredmény egy új lista, a „sliced_list”, amely tartalmazza a szeletelt részt [2, 3, 4].

7. példa: Összefűzés a Zip() függvénnyel

A zip() függvény több iterálható elemet kombinál, és a megfelelő elemekből párokat vagy sorokat hoz létre. Az egyes iterációk ugyanazon indexhez tartozó elemeit használják fel ezeknek a pároknak a létrehozására.

hallgatók = [ 'Alice' , 'Bob' , 'Charlie' ]

évfolyamok = [ 85 , 92 , 78 ]

tanulói_osztályzati_párok = postai irányítószám ( hallgatók , évfolyamok )

result_dict = diktálja ( tanulói_osztályzati_párok )

nyomtatás ( 'Diák-osztálypárok:' , result_dict )

Ebben a példában a zip() függvény párosítja a tanulók neveit a „tanulók” listából a hozzájuk tartozó osztályzatokkal a „grades” listából, ami egy szótárat eredményez, amelyben minden tanuló a megfelelő osztályzatához van társítva.

Következtetés

Összefoglalva, a Python számos módot kínál a listák összefűzésére, mindegyiknek megvannak a maga előnyei. A különféle módszerek felfedezése során, az egyszerű „+” operátortól az árnyaltabb zip() függvényig, nyilvánvalóvá vált, hogy a Python különféle programozási stílusokat és preferenciákat tesz lehetővé. Az aktuális munkától függően olyan tényezők, mint az olvashatóság, a memória hatékonysága és a feldolgozott adatok típusa határozzák meg, hogy melyik módszer a legjobb.