Photo by Kara Eads on UnsplashComprehensions in Python:
A megértés egyetlen kifejezésből áll, amelyet legalább egy for
záradék és nulla vagy több for
vagy if
záradék követ.
A Pythonban háromféle comprehension létezik.
List comprehension:
A list comprehensionok tömör módot biztosítanak listák létrehozására. Gyakori alkalmazásuk új listák készítése, ahol minden egyes elem egy másik sorozat vagy iterábilis minden egyes tagjára alkalmazott műveletek eredménye, vagy azoknak az elemeknek a részfolyamatainak a létrehozása, amelyek egy bizonyos feltételnek megfelelnek. – python docs
Szintaktika:
A kifejezés lehet bármilyen tetszőleges kifejezés, összetett kifejezés, tuple, egymásba ágyazott függvény vagy más listamegértés.
Ez egyenértékű a
for item in iterable:
if conditional:
expression
Return Type:
List
Listafelfogás használata:
A listafelfogás zárójelekből
áll, amelyek egy kifejezést tartalmaznak, amelyet egy for
záradék, majd nulla vagy több for
vagy if
záradék követ. Az eredmény egy új lista lesz, amely a kifejezés kiértékeléséből adódik az azt követő for
és if
záradékok kontextusában.
Listaszövegértés vs for loop.
A List Comprehension használatával tömörebb és olvashatóbb a for loop.
Számok négyzetének megtalálása List Comprehension vs for ciklus segítségével:
List comprehension vs filter.
Az iterátor visszaadása az iterábilis azon elemeiből, amelyekre a függvény igazat ad vissza. Az iterábilis lehet sorozat, iterációt támogató tároló vagy iterátor
Páros számok megtalálása listavégzéssel vs filter():
3.Listavégzés vs map.
map:
Egy iterátort ad vissza, amely az iterábilis minden elemére alkalmaz egy függvényt, megadva az eredményeket.
Számok négyzetének megtalálása List Comprehension vs map() segítségével:
Beépített ciklusok List Comprehensionben.
A List Comprehension tartalmazhat egy vagy több for záradékot.
1. példa: Egy lista simítása List Comprehension segítségével két “for” záradékkal:
5. Több if feltétel a List Comprehensionben.
A List comprehension tartalmazhat nulla vagy több if záradékot.
Példa: A 2-vel és 3-mal osztható számok keresése.
A kifejezés lehet tuple a List Comprehensionben.
List comprehensionben említhetjük a kifejezést tuple-ként. Ezt zárójelek közé kell írni. Ellenkező esetben Error-t fog kiírni. Az eredmény egy tuple-ok listája lesz.
1. példa: Tuple-ok listájának létrehozása List Comprehension segítségével két ‘for’ záradékkal:
Ha a kifejezés tuple, és ha nem zárójelben van, SyntaxError-t fog kiírni.
2. példa: A zip() függvény használata a lista megértésében:
A lista megértése arra használható, hogy minden elemen meghívjunk egy metódust.
1. példa: A strip() metódus meghívása a lista minden elemén. A fehér szóközök eltávolítására szolgál.
2. példa: A upper() metódus hívása a lista minden elemén.
A listaértés tartalmazhat összetett kifejezéseket és egymásba ágyazott függvényeket.
Példa 1: Az alábbi példában a kifejezésben a strip metódust és az int függvényt használjuk.
Példa 2: Az alábbi példában a kifejezésben az abs() és str() függvényt használjuk.
Beépített listakifejtés.
A listakifejtésben szereplő kifejezés tartalmazhat egy másik listakifejtést is.
Példa: Az első, kifejezésként megadott List comprehension egy 0-tól 10-ig terjedő páros számok listáját adja vissza. A beágyazott listakifejtés háromszor adja vissza ezt a kifejezést (páros számok listája 0-tól 10-ig)(range(3)).
.