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в някои случаи.
Недостатъци:
- Четливост при сложни случаи: За много сложна логика може да стане по-малко четлив.
- Липса на странични ефекти: Не е предназначен за изпълнение на действия, които не са свързани с създаването на речник (например, печатане).