На этом шаге мы рассмотрим использование таких генераторов.
Поскольку выражения-генераторы являются, скажем так, выражениями, вы можете их использовать в одной строке вместе с другими инструкциями. Например, вы можете определить итератор и употребить его прямо на месте при помощи цикла for:
for x in ('Buongiorno' for i in range(3)): print(x)
Есть и другой синтаксический трюк, который можно использовать для того, чтобы сделать выражения-генераторы красивее. Круглые скобки, окружающие выражение-генератор, могут быть опущены, если выражение-генератор используется в качестве единственного аргумента функции:
>>> sum((x * 2 for x in range(10))) 90 # Сравните с: >>> sum(x * 2 for x in range(10)) 90
Это позволяет писать сжатый и высокопроизводительный код. Поскольку выражения-генераторы генерируют значения "точно в срок" подобно тому, как это делает итератор на основе класса или функция-генератор, они эффективно используют оперативную память.
На следующем шаге мы поговорим о недастатках выражений-генераторов.