- Lalikiraly: Mercis kalandok - Huszonnyolcadik rész - Az újrakezdés
- Lalikiraly: Kinek milyen setupja van?
- Graphics: Telefonvásárlási kálváriám....avagy clickbait cím: Horror a hardveraprón
- Luck Dragon: Asszociációs játék. :)
- Luck Dragon: Alza kuponok – aktuális kedvezmények, tippek és tapasztalatok (külön igényre)
Új hozzászólás Aktív témák
-
kovisoft
őstag
válasz
V.Stryker
#2206
üzenetére
Alapesetben egy adott elemeket tartalmazó listát létre tudunk hozni úgy, hogy szögletes zárójelek között felsoroljuk az elemeket (pl. [1,3,5,7]). De ezt nem mindig tudjuk vagy akarjuk megtenni. Sokszor adódik olyan helyzet, hogy a listát egy másik listából szeretnénk valamilyen szabály alkalmazásával legyártani. Ilyenkor írnunk kell egy ciklust, ami végigmegy az eredeti listán, és annak minden elemét (amely egy adott feltételt teljesít) behelyettesíti egy kifejezésbe, és az így kapott elemekből jön létre az új lista.
Például kiindulhatunk egy range(n)-ből, és a négyzetszámok listáját előállíthatjuk úgy, hogy mindegyik elemet négyzetre emeljük. Vagy a prímszámok listáját előállíthatjuk úgy, hogy kihagyjuk azokat, amelyeknek van valódi osztója, stb.
A List Comprehension azt teszi lehetővé, hogy a fenti ciklust behelyezzük a szögletes zárójelek közé, mindezt egy nagyon tömör és világos formában. Tehát ahelyett, hogy egyenként felsorolnánk az elemeket, megadjuk azt a szabályt amiből és amivel fel kell tölteni a létrehozandó listát. Ez a szabály áll egy kifejezésből: ezt kell alkalmazni minden szóbajöhető elemre, áll egy for ciklusból valamilyen ciklusváltozóval, ami végigmegy egy listán, és opcionálisan egy if feltételből, amivel szűrni lehet az elemek között:
[expression(i) for i in iterable if condition]ami azt jelenti, hogy menj végig az iterable objektum elemein az i ciklusváltozóval, és ha teljesül az adott i-re a condition feltétel, akkor helyettesítsd be az i-t az expression kifejezésbe, így hozz létre egy új listát.
Példa: 1-re végződő négyzetszámok:
[i*i for i in range(100) if (i*i)%10 == 1]
Új hozzászólás Aktív témák
- ASUS Rog Ally Z1 Extreme, 2027.01.12-ig gyári garanciás, hálózati töltőjével, szilikon tokkal eladó!
- HP 250 G7,15.6",i5-1035G1,8GB DDR4,256GB SSD,WIN11
- Lenovo ThinkPad T480s,FHD,14",i5-7300U,8GB DDR4,256GB SSD,WIN11,TOUCH,jó akku
- Lenovo ThinkPad T480s,FHD,14,i5-7300U,8GB DDR4,256GB SSD,WIN11,TOUCH
- Ugreen Revodok Max Thunderbolt 4, dokkoló, port többszöröző állomás
- szinteÚJ 2030 Gar! Dell Pro Max 14 Ryzen AI 9 HX PRO 370 32GB LPDDR5X 1TB NVMe SSD
- SzoftverPremium.hu
- Corsair VENGEANCE RGB PRO 16GB (2x8GB) DDR4 3200MHz CMW16GX4M2Z3200C16
- REFURBISHED - HP USB-C Universal Dock G1 (DisplayLink)
- LG UltraWide 35WN75CP VA Monitor! 3440x1440 / 100Hz / sRGB 99% / FreeSync
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
