Sobes.tech
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 for ciklai.
  • Skaitomumas: Dažnai aiškesnis kodas paprastoms transformacijoms.
  • Efektyvumas: Gali būti šiek tiek greitesnis nei for ciklai 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).