在Python中将yield语句转换为生成器表达式
我有一个关于将yield语句转换为生成器表达式的问题
所以我有这样一个小的yield方法,它得到一个函数和一个起始号作为它的输入,并且基本上为每个之前被称为ie的数字调用函数:
等等。这里是Python中的代码:
def some_func(function, number):
while True:
yield number
number = function(number)
将这段代码转换为Generator Expression的方式有哪些? 我猜测,这样做有一种非常pythonic和优雅的方式,但我无法绕开它。
我对Generator表达式很不熟悉,因此我寻求帮助,但我想扩展我对Gen Exp的总体了解,尤其是Python
坚持你现在拥有的东西。 你可以将函数转换为一个生成器表达式,但它会是一个不可读的混乱。
生成器表达式需要另一个迭代器来循环,这是您的生成器函数不具备的。 生成器表达式也不能真正访问任何其他变量; 还有就是表达和循环,可选if
过滤器和多环。
这是一个生成器表达式的样子:
from itertools import repeat
number = [number]
gen = ((number[0], number.__setitem__(0, function(number[0]))[0] for _ in repeat(True))
我们滥用number
作为“变数”。
上一篇: Converting a yield statement to a Generator Expression in Python