Sobes.tech
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ű for ciklusok.
  • Á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 for ciklusok.

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).