Шаг 158.
Python: тонкости программирования.
Циклы и итерации. Выражения-генераторы. Встраиваемые выражения-генераторы

    На этом шаге мы рассмотрим использование таких генераторов.

    Поскольку выражения-генераторы являются, скажем так, выражениями, вы можете их использовать в одной строке вместе с другими инструкциями. Например, вы можете определить итератор и употребить его прямо на месте при помощи цикла 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

    Это позволяет писать сжатый и высокопроизводительный код. Поскольку выражения-генераторы генерируют значения "точно в срок" подобно тому, как это делает итератор на основе класса или функция-генератор, они эффективно используют оперативную память.

    На следующем шаге мы поговорим о недастатках выражений-генераторов.




Предыдущий шаг Содержание Следующий шаг