Junior
Čo sú comprehensions slovníkov v Pythone?
sobes.tech AI
Odpoveď od AI
Generator slovníkov (dict comprehension) je kompaktná syntax na vytváranie slovníkov založená na iterovateľnom objekte. Umožňuje generovať páry "kľúč: hodnota" pomocou výrazov a voliteľného filtrovania.
Syntax:
# základná syntax
dict = {výraz_kľúča: výraz_hodnoty for prvok in iterable}
# s podmienkou
dict = {výraz_kľúča: výraz_hodnoty for prvok in iterable if podmienka}
Príklady:
Vytvorenie slovníka štvorcov čísel od 0 do 4:
# slovník, kde je kľúč číslo a hodnota jeho štvorc
squares = {x: x**2 for x in range(5)}
# squares = {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
Vytvorenie slovníka len pre párne čísla:
# slovník s štvorcami len párnych čísel
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}
Obrátenie kľúčov a hodnôt:
original_dict = {'a': 1, 'b': 2, 'c': 3}
# slovník s obrátenými kľúčmi a hodnotami
inverted_dict = {value: key for key, value in original_dict.items()}
# inverted_dict = {1: 'a', 2: 'b', 3: 'c'}
Výhody:
- Kompaktnosť: Kompaktnejšie ako ekvivalentné
forslučky. - Čitateľnosť: Častejšie jasnejší kód pre jednoduché transformácie.
- Efektívnosť: Môže byť o niečo rýchlejší ako
forslučky v niektorých prípadoch.
Nevýhody:
- Čitateľnosť pri zložitých prípadoch: Pre veľmi zložitú logiku môže byť menej čitateľný.
- Chýbajúce vedľajšie efekty: Nie je určený na vykonávanie akcií, ktoré nesúvisia s vytváraním slovníka (napríklad tlač).