Sobes.tech
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 for dö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 for dö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).