Вы, наверное, уже слышали про генераторы списков, называемые List Comprehension, которые являются более компактными и быстрыми, чем цикл for при записи данных в список.
Пример генератора списка:
result = []
for elem in some_iterable:
result.append(elem)
# идентично
result = [elem for elem in some_iterable]
Так вот, спешу вас обрадовать, со словарями можно провернуть нечто подобное!
Эта возможность, описываемая в PEP 274, была добавлена аж в версии Python 2.3 в 2001 году. Давненько, неправда ли?
Генераторы словарей – они как генераторы списков за исключением того, что используются "кудрявые" скобки { }, а не квадратные [ ]. А также в левой части перед ключевым словом for находятся ключ и значение словаря, разделенные двоеточием. Напоминает обычные словари?
Покажу на примере:
>>> my_list = ['hello', 'python', 'world']
>>> print( { x.upper() : 1 for x in my_list } )
>>> {'HELLO': 1, 'PYTHON': 1, 'WORLD': 1}
>>> my_dict = { num : num**2 for num in range(5) }
>>> print(my_dict)
>>> {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
А на этом всё. Спасибо за внимание! Если вам понравилась статья, то ставьте лайки, делитесь с друзьями. Остались вопросы или замечания? Буду рад видеть ваши комментарии.
Вам может быть интересно: