Lista értés Pythonban – példákkal

A Pythonban a listaértelmezések segítségével új listákat hozhat létre meglévő iterálható elemekből, például listákból, karakterláncokból és sorokból.

Tömör szintaxisuk lehetővé teszi új listák létrehozását egyetlen kódsorban. És ez az oktatóanyag megtanítja Önnek, hogyan teheti ezt meg.

A következő néhány percben megtudhatja:

  • Új lista létrehozása a for ciklusok használatával,
  • A szintaxis a listaértelmezések használatához Pythonban, és
  • Hogyan módosíthatjuk a lista megértését if feltételes utasítással.

Ezenkívül számos olyan példát is kódol, amelyek segítenek jobban megérteni a lista megértését.

Merüljünk el.🌊

Python-listák létrehozása a ciklusokhoz

Tegyük fel, hogy van egy listában szereplő számok száma. És szeretne létrehozni egy másik listát, amely az összes szám kockáját tartalmazza számokban. Íme, hogyan kell ezt megtenni egy for ciklus használatával a Pythonban:

nums = [2,3,5,7]
num_cubes = []
for num in nums:
  num_cubes.append(num**3)

print(num_cubes)

# Output
[8, 27, 125, 343]

A fenti kódban a következő lépéseink vannak:

  • Inicializáljon egy üres listát num_cubes.
  • Lapozzon át a számlistán.
  • Nyissa meg az egyes számokat, és számítsa ki a kockát a hatványozási operátor segítségével: num**3.
  • Végül fűzze hozzá a kocka értéket a kockák száma listához

Megjegyzés: A Pythonban a ** hatványozási operátort a következő szintaxissal használják: num**pow – a num számot a power pow értékre emeli.

Ezt azonban könnyebben megteheti a Python listaértési funkciójával. Folytassuk a szintaxis megtanulásával.

Python lista megértési szintaxisa

A lista megértésének általános szintaxisa alább látható.

<new_list> = [<expression> for <item> in <iterable>]

Elemezzük a fenti szintaxist.

  • A Pythonban a listákat szögletes zárójelek választják el []-ezért mellékelnie kell a listaértelmezési utasítást [].
  • Az alatti azt jelenti, hogy egy iterálható cikluson keresztül fut. Bármilyen Python-objektum, amelyen át lehet lépni, és hozzáférhet az egyes elemekhez – például listák, sorok és karakterláncok – iterálhatók.
  • A az a kimenet, amelyet az minden -jéhez ki szeretne számítani.

És ez egyszerűen hangzik, igaz?

Lényegében szeretne tenni valamit a lista összes elemével (vagy bármely iterálható elemmel), hogy új listát kapjon.

Ennek segítségével leegyszerűsíthetjük a szintaxist, ahogy az alábbi képen is látható.

Python List Comprehension Syntax (Kép a szerzőtől)

Most, hogy megtanulta a szintaxist, ideje elkezdeni a kódolást. Használhatja a etoppc.com online Python IDE-jét, hogy kövesse ezeket a példákat. Vagy futtathatja őket a helyi gépen.

Python Lista megértési példák

Az előző szakaszban új listát hozott létre num_cubes a számokból. Kezdjük azzal, hogy átírjuk ezt a listaértés segítségével.

A listaértés használata számokkal

Most használjuk az egyszerűsített szintaxist a következőképpen:

  • : Itt minden számot kockára kell vágnia. Tehát cserélje ki a -t a num**3-ra.
  • : A hurokváltozó a num – a listában szereplő egyes számok.
  • : A meglévő listánk számok.
  • És [num**3 for num in nums] a végső kifejezés. ✅

Mindezt összeadva a következő kódrészletet kapjuk:

num_cubes = [num**3 for num in nums]
print(num_cubes)

# Output
[8, 27, 125, 343]

Gratulálunk, bekódoltad az első lista értésedet.🎉

Továbblépve dolgozzunk Python karakterláncokkal.

A listaértelmezés használata karakterláncokkal

Tegyük fel, hogy megvannak a szerzők listája – az alábbi listát átírhatod kedvenc szerzőiddel.😄

authors = ["jane austen","george orwell","james clear","cal newport"]

Figyelje meg, hogy a szerzők nevei kisbetűvel szerepelnek a fenti listában. Most szeretnénk őket a cím kis- és nagybetűjében formázni, és egy új listában tárolni, szerző_lista néven.

Megjegyzés: Pythonban a karakterlánc metódus cím() egy karakterláncot fogad el argumentumként, és visszaadja a karakterlánc másolatát a cím kis- és nagybetűjében. Ez azt jelenti, hogy minden szó első betűje nagybetűs: Keresztnév Vezetéknév

Tehát csak ennyit kell tennie:

  • böngéssze végig a szerzők listáját és a listában szereplő összes szerzőt,
  • hívja meg az author.title() függvényt, hogy megkapja a karakterlánc cím-kisbetűs másolatát.

Az ehhez tartozó Python kód pedig alább látható:

authors = ["jane austen","george orwell","james clear","cal newport"]

author_list = [author.title() for author in authors]
print(author_list)

# Output
['Jane Austen', 'George Orwell', 'James Clear', 'Cal Newport']

A fenti kimenetben figyelje meg, hogy az összes szerző neve hogyan lett formázva a cím kis- és nagybetűjében – ezt szerettük volna.

Listaértelmezés használata több listával

Eddig megtanulta, hogyan használhatja a listaértelmezést új listák létrehozására egy meglévő listából. Most pedig tanuljuk meg, hogyan hozhatunk létre új listát több listából.

Vegyük például ezt a problémát: Két l_arr és b_arr listája van, amelyek 4 téglalap hosszát és szélességét tartalmazzák.

És létre kell hoznia egy új listaterületet, amely tartalmazza ennek a 4 téglalapnak a területét. Ne feledje, terület = hosszúság * szélesség.

l_arr = [4,5,1,3]
b_arr = [2,1,7,9]

A terület kiszámításához mindkét listából (l_arr és b_arr) szüksége lesz elemekre. És megteheti a Python zip() függvényével.

Megjegyzés: A Pythonban a zip() függvény egy vagy több iterablet vesz fel argumentumként a zip(*iterables) szintaxissal. Ezután egy sor iterátort ad vissza, ahol az i sor tartalmazza az i elemet az egyes iterálható elemekből.

A következő kép ezt írja le részletesen. Az l_arr-ban és a b_arr-ban 4 érték van, tehát az indexek tartománya 0-tól 3-ig terjed. Amint látja, a 0 sor tartalmazza az l_arr értéket.[0] és b_arr[0]az 1. sor tartalmazza az l_arr értéket[1] és b_arr[1]stb.

Python zip() függvény (a szerző képe)

Ezért a zip(l_arr,b_arr) függvényt az alábbiak szerint hajthatja végre:

area = [l*b for l,b in zip(l_arr,b_arr)]
print(area)

# Output
[8,5,7,27]

A következő részben megtudhatja, hogyan használhatja a feltételes utasításokat a lista megértésében.

Python lista értelmezése feltétel szintaxissal

Kezdjük az előző szintaxisra építve a lista megértéséhez.

Íme a szintaxis:

<new_list> = [<expression> for <item> in <iterable> if <condition>]

Ahelyett, hogy az összes elem kiszámolná, csak azokra az elemekre szeretné elvégezni, amelyek megfelelnek egy adott – ahol, feltétel := igaz. Ez pedig egy egyszerűsített szintaxishoz vezet, amint látható:

Python-lista értelmezése feltétel szintaxissal (a szerző képe)

▶ Ezzel folytassuk a kódpéldákkal.

Python-lista értelmezése feltételpéldákkal

#1. A következő szöveget kapja: „Pythont tanulok 2022-ben”. Szeretné látni a karakterlánc összes számjegyének listáját. Szóval hogyan csinálod?

Pythonban a .isdigit() a karakterre hat, és igaz értéket ad vissza, ha az egy számjegy (0-9); egyébként False-t ad vissza.

Az alábbi kódrészlet megmutatja, hogyan gyűjtheti össze az str1 karakterlánc összes számjegyének listáját.

str1 = "I'm learning Python3 in 2022"

digits = [char for char in str1 if char.isdigit()]

print(digits)

# Output
['3', '2', '0', '2', '2']

A fenti kódban:

  • végighurkolod az str1 karakterláncot,
  • minden karakterhez hozzáférhet, hogy ellenőrizze, hogy számjegyről van-e szó az isdigit() metódussal, és
  • csak akkor adjon hozzá karaktert a lista új számjegyeihez, ha az egy számjegy.

Vegyünk egy másik példát.

#2. Van egy listája a gyümölcsökről.🍊 És szeretne létrehozni egy listát a_b-vel kezdődik, amely tartalmazza a b-vel kezdődő gyümölcslista összes gyümölcsét. A startswith() metódust használhatja a feltétel írásához.

A .startswith(‘char’) igazat ad vissza, ha a ‘char’ karakterrel kezdődik; egyébként False-t ad vissza.

fruits = ['blueberry','apple','banana','orange','cherry']

starts_with_b = [fruit for fruit in fruits if fruit.startswith('b')]

print(starts_with_b)

# Output
['blueberry', 'banana']

A fenti kimenetben az „áfonyát” és a „banánt” kapjuk, amelyek az a két gyümölcs, amelyek „b”-vel kezdődnek a gyümölcslistában, ahogy azt vártuk.

És ezzel lezárjuk a lista megértéséről szóló vitánkat.

Következtetés

Remélem, hogy ez az oktatóanyag segített megérteni a Python listák értelmezését.

Összefoglaljuk:

  • Te tudod használni [<do this> for <all-items> in <this-list>] új lista létrehozásához a listaértés segítségével.
  • Ezenkívül használhatja a szintaxist [<do this> for <all-items> in <this-list> if <condition-is-True>] az if feltételes utasítással.

Ezenkívül több példát is kódolt. Következő lépésként megpróbálhatja átírni néhány meglévő Python-hurkát a listakészítéshez a listaértelmezés segítségével. Boldog kódolást! A következő tutorialig.😄

Most megnézheti, hogyan konvertálhat egy listát szótárrá, vagy megtanulhatja, hogyan kell kezelni a fájlokat Pythonban.

  A 0x97e107df Xbox hiba kijavítása