- Milyen okostelefont vegyek?
- Megvan, melyik Snapdragon 7 kerül Nothing Phone (4a)-ba
- Google Pixel topik
- OnePlus 15 - van plusz energia
- Honor Magic6 Pro - kör közepén számok
- Januárban csak az Apple tudott érdemben növekedni Kínában
- Okosóra és okoskiegészítő topik
- iPhone topik
- Apple iPhone 17 Pro Max – fennsík
- Fotók, videók mobillal
Ú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
- Sapphire Radeon RX Vega 56 8 GB PCI-E Videokártya
- Gigabyte B560M DS3H V2 alaplap, i5-10400 CPU, 256 GB M.2 SSD, Windows 11
- Újszerű MSI RAIDER GE66 12UH 15.6QHD IPS 240Hz i7-12700H 32GB DDR5 RAM 1TB NVME SSD RTX 3080 175w
- Apple Ipad Pro 11 M2 2022 Space Gray 128gb Wifi+Cellular 1 év garancia
- ASUS ROG STRIX G15 Gaming Laptop - Ryzen 7, 16 GB RAM, RTX 3050 Ti, 512 GB SSD
- Lenovo ThinkPad T14s Gen 2 i5-1135G7 16GB 1000GB FHD 1 év garancia
- Samsung Galaxy S22 / 8/128GB / Kártyafüggetlen / 12Hó Garancia
- Dell Precision 7550 i7-10850H 32GB 512GB Nvidia RTX5000 16GB 1 év garancia
- GYÖNYÖRŰ iPhone 14 Pro Max 128GB Deep Purple-1 ÉV GARANCIA - Kártyafüggetlen, MS3913
- Azonnali készpénzes Intel i5 i7 i9 8xxx 9xxx processzor felvásárlás személyesen / csomagküldés
Állásajánlatok
Cég: Central PC számítógép és laptop szerviz - Pécs
Város: Pécs
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest


