Sobes.tech
Junior

Mis on sõnastike mõistmised (dict comprehensions) Pythonis?

sobes.tech AI

Vastus AI-lt

Sõnastike koostaja (dict comprehension) on kompaktne süntaks sõnastike loomiseks, mis põhineb iteratiivsel objektil. See võimaldab genereerida "võti: väärtus" paare, kasutades väljendeid ja valikulist filtreerimist.

Süntaks:

# põhitasandiline süntaks
dict = {key_expression: value_expression for item in iterable}

# tingimusega
dict = {key_expression: value_expression for item in iterable if condition}

Näited:

Sõnastiku loomine numbrite ruutudest 0 kuni 4:

# sõnastik, kus võti on number ja väärtus selle ruut
squares = {x: x**2 for x in range(5)}
# squares = {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}

Sõnastiku loomine ainult paarisarvudest:

# sõnastik ainult paarisarvude ruutudest
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}

Võtmete ja väärtuste pööramine:

original_dict = {'a': 1, 'b': 2, 'c': 3}
# sõnastik, kus võti ja väärtus on vahetatud
inverted_dict = {value: key for key, value in original_dict.items()}
# inverted_dict = {1: 'a', 2: 'b', 3: 'c'}

Eelised:

  • Lühidus: Kompaktsem kui ekvivalentsed for-tsüklid.
  • Lugemise lihtsus: Sageli arusaadavam kood lihtsate teisenduste jaoks.
  • Tõhusus: Mõnel juhul võib olla veidi kiirem kui for-tsüklid.

Puudused:

  • Lugemise keerukus keerukamate juhtumite korral: Väga keeruliste loogikate puhul võib muutuda vähem arusaadavaks.
  • Side effects puudumine: Ei ole mõeldud tegevuste jaoks, mis ei ole seotud sõnastiku loomisega (näiteks midagi printida).