Junior
Kas yra žodynų supratimai (dict comprehensions) Python'e?
sobes.tech AI
Atsakymas iš AI
Žodynų generatorius (dict comprehension) yra kompaktiška sintaksė, skirta kurti žodynus, pagrįstus iteruojamu objektu. Ji leidžia generuoti "raktas: reikšmė" poras naudojant išraiškas ir pasirinktinius filtrus.
Sintaksė:
# pagrindinė sintaksė
dict = {raktas_išraiška: reikšmė_išraiška for elementas in iterable}
# su sąlyga
dict = {raktas_išraiška: reikšmė_išraiška for elementas in iterable if sąlyga}
Pavyzdžiai:
Sukurti žodyną iš kvadratų skaičių nuo 0 iki 4:
# žodynas, kur raktas yra skaičius, o reikšmė — jo kvadratas
squares = {x: x**2 for x in range(5)}
# squares = {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
Sukurti žodyną tik poriniams skaičiams:
# žodynas su kvadratais tik porinių skaičių
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}
Raktų ir reikšmių apvertimas:
original_dict = {'a': 1, 'b': 2, 'c': 3}
# žodynas su apverstais raktai ir reikšmėmis
inverted_dict = {value: key for key, value in original_dict.items()}
# inverted_dict = {1: 'a', 2: 'b', 3: 'c'}
Privalumai:
- Kompaktiškumas: Daugiau kompaktiškas nei atitinkami
forciklai. - Skaitomumas: Dažnai aiškesnis kodas paprastoms transformacijoms.
- Efektyvumas: Gali būti šiek tiek greitesnis nei
forciklai kai kuriais atvejais.
Trūkumai:
- Skaitomumas sudėtingais atvejais: Labai sudėtinga logika gali tapti mažiau skaitoma.
- Šalutiniai efektai: Neskirtas veiksmams, kurie nėra susiję su žodyno kūrimu (pvz., spausdinimas).