Junior
Mi a dict comprehension a Pythonban?
sobes.tech MI
Válasz az MI-től
Szótárgenerátor (dict comprehension) — ez egy kompakt szintaxis szótárak létrehozásához, amely egy iterálható objektumon alapul. Lehetővé teszi "kulcs: érték" párok generálását kifejezések és opcionális szűrés alkalmazásával.
Szintaxis:
# alap szintaxis
dict = {kulcs_kifejezés: érték_kifejezés for elem in iterable}
# feltétellel
dict = {kulcs_kifejezés: érték_kifejezés for elem in iterable if feltétel}
Példák:
Létrehozni egy szótárat a 0-tól 4-ig terjedő számok négyzeteiről:
# szótár, ahol a kulcs a szám, az érték a négyzete
squares = {x: x**2 for x in range(5)}
# squares = {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
Csak páros számokra szótár létrehozása:
# szótár csak páros számok négyzeteiről
even_squares = {x: x**2 for x in range(10) if x % 2 == 0}
# even_squares = {0: 0, 2: 4, 4: 16, 6: 36, 8: 64}
Kulcsok és értékek megcserélése:
original_dict = {'a': 1, 'b': 2, 'c': 3}
# szótár, ahol a kulcsok és értékek felcserélve
inverted_dict = {value: key for key, value in original_dict.items()}
# inverted_dict = {1: 'a', 2: 'b', 3: 'c'}
Előnyök:
- Tömörség: Kompaktabb, mint az egyenértékű
forciklusok. - Átláthatóság: Gyakran könnyebben érthető kód egyszerű átalakításokhoz.
- Hatékonyság: Néhány esetben gyorsabb lehet, mint a
forciklusok.
Hátrányok:
- Átláthatóság összetettebb esetekben: Nagyon összetett logikánál kevésbé olvasható lehet.
- Oldaleffektusok hiánya: Nem szánták olyan műveletek végrehajtására, amelyek nem kapcsolódnak a szótár létrehozásához (pl. nyomtatás).