- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Kis méret, nagy változás a Motorolánál
- Google Pixel topik
- Megtartotta Európában a 7500 mAh-t az Oppo
- Tényleg kicsit más lesz a Xiaomi 17 Ultra európai különkiadása
- iPhone topik
- Milyen okostelefont vegyek?
- Apple iPhone 17 Pro Max – fennsík
- Honor Magic6 Pro - kör közepén számok
- Honor Magic8 Pro - bevált recept kölcsönvett hozzávalókkal
Ú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
- Szünetmentes tápegységek (UPS)
- Tőzsde és gazdaság
- Milyen videókártyát?
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Kormányok / autós szimulátorok topikja
- Kínai és egyéb olcsó órák topikja
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- HiFi műszaki szemmel - sztereó hangrendszerek
- Diablo II: Classic és Resurrected
- Építsünk ventilátormentes minigépet Intel platformon az Akasa új házával!
- További aktív témák...
- GIGA AKCIÓ!!! 450.000Ft HELYETT szinteÚJ OnePlus 15 egyenlő 16 ami 2 a 4.-en Sand Storm 16GB / 512GB
- ÁRGARANCIA! Épített KomPhone Ultra 9 285K 32/64GB RAM RTX 5070 Ti 16GB GAMER PC termékbeszámítással
- Apple iPad 7 32GB (3 hó Garancia)
- iKing.hu Apple iPhone 12 mini 64GB Black használt megkímélt 100% akku 6 hónap garancia
- Bomba ár! Lenovo ThinkPad T15 G1 - i5-10GEN I 16GB I 256GB SSD I 15,6" FHD I Cam I W11 I Gari!
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

