Hirdetés
- 5.1, 7.1 és gamer fejhallgatók
- Webes drivert fejleszt a Razer
- Milyen cserélhető objektíves gépet?
- Projektor topic
- Milyen monitort vegyek?
- Kormányok / autós szimulátorok topikja
- Hisense LCD és LED TV-k
- Fejhallgató erősítő és DAC topik
- Sok hűhó négyszázért: AMD Ryzen 7 9850X3D
- Új kezdeményezéssel pofoznák ki a Linuxot a játékosoknak
Új hozzászólás Aktív témák
-
cousin333
addikt
Ez a gyakran előforduló alap szituáció, ami egy lista (tágabban: egy iterálható objektum) elemein hajtja végre ugyanazt a függvényt:
lista = []for elem in elemek:lista.append(func(elem))A func() függvényhívásnak ott kell lennie különben egyszerűen csak átmásolnád a listát. Ugyanez rövidebben ún. list comprehension-nel:
lista = [func(elem) for elem in elemek]Gyakorlatilag a for ciklus belsejét kihoztuk az elejére, elhagytuk az append-et, és az egészből egy egysoros értékadást csináltunk. Az extra [] tulajdonképpen egy "konstruktor", egy "syntactic sugar" (van erre magyar kifejezés?), ami azt mondja, hogy az eredményt listába szeretném rendezni. Írhattam volna ezt is:
lista = list(func(elem) for elem in elemek)A [] helyett írhatnék mást is, a szándéktól függően: a {} például - kicsit más szintaxis mellett - egy szótárat (dictionary) hozna létre, míg a () egy generátor kifejezést. Ami egyébként megegyezik a fenti példával, csak a list függvény nélkül. Mint látható, Pythonban az egyes szintaktikai elemek ebben az esetben (is) nagyon szépen egymásra épülnek.
Namost az if kifejezés a fentieknek egy speciális esete: nem akarunk minden elemet felhasználni, csak azokat, amik egy bizonyos feltételnek megfelelnek. Mivel ez egy extra, opcionális eset, logikus, hogy a kifejezés végére kerül, ha egyáltalán szerepel:
lista = [func(elem) for elem in elemek if not elem % 3]Ugyanígy működik a feltételes értékadás is, amit axioma is írt, ami mondjuk C-ben az x = (a) ? m : n.
Pythonban pedig:
x = m if a else nHa nem lenne feltétel, akkor csak simán ezt írnánk:
x = mLátható, hogy a feltételes és feltétel nélküli értékadás ugyanúgy kezdődik, csak előbbi a feltétellel folytatódik.
Új hozzászólás Aktív témák
- HP Victus 16 - 16.1"FHD 144Hz - Ryzen 5 7640HS - 32GB - 1TB - Win11 -RTX 4050 - 1,5 év gari - MAGYAR
- Sony PS3/PS4/PS5 és kézikonzolok Okosítása és Szoftveres szintű javítása - Már 12.52-es PS4 is!
- Telefon felvásárlás!! Samsung Galaxy A16, Samsung Galaxy A26, Samsung Galaxy A36, Samsung Galaxy A56
- Eladó Apple iPhone 13 Mini 128GB / 12 hó jótállás
- Telefon felvásárlás!! Apple iPhone 16, Apple iPhone 16e, Apple iPhone 16 Plus, Apple iPhone 16 Pro
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: Central PC számítógép és laptop szerviz - Pécs
Város: Pécs


