Назад к вопросам
Junior
68
questionbank
Что такое генераторы словарей (dict comprehensions) в Python?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Генератор словарей (dict comprehension) — это компактный синтаксис для создания словарей, основанный на итерируемом объекте. Позволяет генерировать пары "ключ: значение" с применением выражений и необязательной фильтрации.
Синтаксис:
# базовый синтаксис
dict = {key_expression: value_expression for item in iterable}
# с условием
dict = {key_expression: value_expression for item in iterable if condition}
Примеры:
Создание словаря квадратов чисел от 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в некоторых случаях.
Недостатки:
- Читаемость для сложных случаев: Для очень сложных логик могут стать менее читаемыми.
- Отсутствие side effects: Не предназначены для выполнения действий, которые не связаны с созданием словаря (например, печать чего-либо).