Junior
Kas ir vārdnīcu sapratnes (dict comprehensions) Python?
sobes.tech AI
Atbilde no AI
Vārdu ģenerators (dict comprehension) ir kompakta sintakse, kas ļauj izveidot vārdnīcas, balstoties uz iterējamu objektu. Tas ļauj ģenerēt "atslēga: vērtība" pārus, izmantojot izteiksmes un izvēles filtru.
Sintakse:
# pamatsintakse
dict = {atslēga_izteiksme: vērtības_izteiksme for elements in iterable}
# ar nosacījumu
dict = {atslēga_izteiksme: vērtības_izteiksme for elements in iterable if nosacījums}
Piemēri:
Izveidot vārdnīcu ar kvadrātiem skaitļiem no 0 līdz 4:
# vārdnīca, kur atslēga ir skaitlis, bet vērtība — tā kvadrāts
squares = {x: x**2 for x in range(5)}
# squares = {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
Izveidot vārdnīcu tikai pāra skaitļiem:
# vārdnīca ar kvadrātiem tikai pāra skaitļiem
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}
Atslēgu un vērtību apgriešana:
original_dict = {'a': 1, 'b': 2, 'c': 3}
# vārdnīca ar apgrieztiem atslēgām un vērtībām
inverted_dict = {value: key for key, value in original_dict.items()}
# inverted_dict = {1: 'a', 2: 'b', 3: 'c'}
Priekšrocības:
- Kompaktums: Kompaktāks nekā līdzvērtīgas
forcilpas. - Lasāmība: Bieži skaidrāks kods vienkāršām pārveidojumiem.
- Efektivitāte: Dažos gadījumos var būt nedaudz ātrāks nekā
forcilpas.
Trūkumi:
- Lasāmība sarežģītos gadījumos: Ļoti sarežģīta loģika var kļūt mazāk lasāma.
- Blakus efekti: Nav paredzēts darbībām, kas nav saistītas ar vārdnīcas izveidi (piemēram, drukāšanu).