Sobes.tech
Junior

Какво са генераторите на речници (dict comprehensions) в Python?

sobes.tech AI

Отговор от AI

Генератор на речници (dict comprehension) е компактна синтаксис за създаване на речници, базирана на итеративен обект. Позволява генериране на двойки "ключ: стойност" чрез изрази и опционално филтриране.

Синтаксис:

# основен синтаксис
dict = {израз_ключ: израз_стойност for елемент in iterable}

# с условие
dict = {израз_ключ: израз_стойност for елемент in iterable if условие}

Примери:

Създаване на речник с квадрати на числата от 0 до 4:

# речник, където ключът е числото, а стойността — неговият квадрат
squares = {x: x**2 for x in range(5)}
# squares = {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}

Създаване на речник само за четни числа:

# речник с квадрати само на четни числа
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}

Обратна замяна на ключове и стойности:

original_dict = {'a': 1, 'b': 2, 'c': 3}
# речник с обърнати ключове и стойности
inverted_dict = {value: key for key, value in original_dict.items()}
# inverted_dict = {1: 'a', 2: 'b', 3: 'c'}

Предимства:

  • Краткост: По-компактен от еквивалентните цикли for.
  • Четливост: Често по-ясен код за прости преобразувания.
  • Ефективност: Може да е малко по-бърз от цикли for в някои случаи.

Недостатъци:

  • Четливост при сложни случаи: За много сложна логика може да стане по-малко четлив.
  • Липса на странични ефекти: Не е предназначен за изпълнение на действия, които не са свързани с създаването на речник (например, печатане).