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