Junior
Python-da lüğət anlayışları (dict comprehensions) nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Sözlük generatoru (dict comprehension) — bu, təkrarlanan obyektə əsaslanan sözlüklər yaratmaq üçün qısa sintaksisdir. İfadələr və istəyə bağlı filtrasiya istifadə edərək "açar: dəyər" cütlərini yaratmağa imkan verir.
Sintaksis:
# əsas sintaksis
dict = {açar_ifadəsi: dəyər_ifadəsi for element in iterable}
# şərtlə
dict = {açar_ifadəsi: dəyər_ifadəsi for element in iterable if şərt}
Nümunələr:
0-dan 4-ə qədər olan ədədlərin kvadratlarından ibarət sözlük yaratmaq:
# açar ədəd, dəyər onun kvadratı
squares = {x: x**2 for x in range(5)}
# squares = {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
Yalnız cüt ədədlər üçün sözlük yaratmaq:
# cüt ədədlərin kvadratları sözlüyü
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}
Açarlar və dəyərləri tərs çevirmək:
original_dict = {'a': 1, 'b': 2, 'c': 3}
# açar və dəyərləri tərs çevrilmiş sözlük
inverted_dict = {value: key for key, value in original_dict.items()}
# inverted_dict = {1: 'a', 2: 'b', 3: 'c'}
Üstünlüklər:
- Qısa: Ekvivalent
fordöngələrindən daha qısa. - Oxunaqlıq: Sadə çevirmələr üçün adətən daha aydın kod.
- Effektivlik: Bəzi hallarda
fordöngələrindən bir az daha sürətli ola bilər.
Çatışmazlıqlar:
- Çətin hallarda oxunaqlıq: Çox mürəkkəb məntiq üçün daha az oxunaqlı ola bilər.
- Yan təsirlərin olmaması: Sözlük yaratmaqla əlaqəli olmayan əməliyyatlar üçün nəzərdə tutulmayıb (məsələn, çap etmək).