Генераторы, примеры, назначение.
Генераторы — это «ленивые» итераторы — функции, возвращающие следующий элемент тогда, когда он запрашивается. В генераторах запоминается точка выхода из функции и при следующем обращении работа функции продолжается с места выхода.
Для создания генераторов используют функции, содержащие в своем теле ключевое слово «yield» — такие функции возвращают объект-генератор.
def reverse(data):
new_data = list(data)
new_data.reverse()
for item in new_data:
yield item
>>> rev = reverse("string")
>>> rev
<generator object reverse at 0x7fa00b285aa0>
>>> [char for char in rev]
['g', 'n', 'i', 'r', 't', 's']В генераторах списков можно использовать любые выражения Python.
С помощью генераторов списков можно легко отобразить один список в другой, применив некоторую функцию к каждому элементу.
>>> a_list = [1, 9, 8, 4]
>>> [elem * 2 for elem in a_list]
[2, 18, 16, 8]
>>> a_list
[1, 9, 8, 4]
>>> a_list = [elem * 2 for elem in a_list]
>>> a_list
[2, 18, 16, 8]Генераторы множеств
Last updated
Was this helpful?