Найти тему
proger ЧАЙНИК

Генераторы словарей. Dict Comprehension. Python

Вы, наверное, уже слышали про генераторы списков, называемые 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}

А на этом всё. Спасибо за внимание! Если вам понравилась статья, то ставьте лайки, делитесь с друзьями. Остались вопросы или замечания? Буду рад видеть ваши комментарии.

Вам может быть интересно:

Наука
7 млн интересуются