Hirdetés
- Samsung Galaxy A56 - megbízható középszerűség
- Bemutatkozott a Poco X7 és X7 Pro
- Xiaomi 15T - reakció nélkül nincs egyensúly
- Samsung Galaxy A54 - türelemjáték
- Telekom mobilszolgáltatások
- Xiaomi 15T Pro - a téma nincs lezárva
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Külföldi prepaid SIM-ek itthon
- A Honor is megcsinálja saját kamerakészletét
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
Ú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
- AMD Navi Radeon™ RX 9xxx sorozat
- Samsung Galaxy A56 - megbízható középszerűség
- Energiaital topic
- Bemutatkozott a Poco X7 és X7 Pro
- Ilyen se volt még: mégsem kell sok memória az új James Bond játékhoz
- Assetto Corsa Rally
- Háztartási gépek
- Kormányok / autós szimulátorok topikja
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- További aktív témák...
- AKCIÓ!!! HP ZBook Power 15 G8 Mobile Workstation i7-11850H 32GB 1000GB Nvidia RTX A2000
- DELL Precision 5540 Workstation i7-9850H Nvidia Quadro T1000 32GB 512GB 15.6" 1év garancia
- KÉSZLETKISÖPRÉSI UltraAkcióóó! MacBook Air M4 16GB 256GB Garancia - több színben!
- Újszerű Switch 2 Joy-con páros
- MINŐSÉGI SONY HIFI TORONY EGYBEN VAGY KÜLÖN ELADÓ!
- ÁRGARANCIA!Épített KomPhone i5 14600KF 32/64GB RAM RX 9070 16GB GAMER PC termékbeszámítással
- ÁRGARANCIA!Épített KomPhone i5 12400F 16/32/64GB RAM RTX 3060 12GB GAMER PC termékbeszámítással
- Lenovo Thinkpad X1 Yoga 6th Gen. i7 11th, 32GB RAM 27% ÁFÁS (0328)
- ÁRGARANCIA!Épített KomPhone i7 14700KF 32/64GB RAM RX 9070 16GB GAMER PC termékbeszámítással
- ÁRGARANCIA!Épített KomPhone Ultra 7 265KF 32/64GB RAM RTX 5090 32GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest


