Python';s相当于F#和#x27;让我们屈服吧!(产量爆炸)?
假设我在F#中有以下代码: 此代码可以称为从0开始的所有数字,生成从0到无穷大的所有数字。 我知道Python还有一个Python';s相当于F#和#x27;让我们屈服吧!(产量爆炸)?,python,python-3.x,Python,Python 3.x,假设我在F#中有以下代码: 此代码可以称为从0开始的所有数字,生成从0到无穷大的所有数字。 我知道Python还有一个yield关键字,它的行为似乎很像F#的yield操作符。我的问题是,是否还有某种等价于F#syield操作员 谢谢相当于Python的特性是 def来自(k)的所有数字: 产量k 从(k+1)的所有_数_得出的收益率 然而,这将创建大量链式生成器,在Python中是一个糟糕的实现。看看有没有更好的选择 相当于Python的特性是 def来自(k)的所有数字: 产量k 从(k+
yield
关键字,它的行为似乎很像F#的yield
操作符。我的问题是,是否还有某种等价于F#syield代码>操作员
谢谢相当于Python的特性是
def来自(k)的所有数字:
产量k
从(k+1)的所有_数_得出的收益率
然而,这将创建大量链式生成器,在Python中是一个糟糕的实现。看看有没有更好的选择 相当于Python的特性是
def来自(k)的所有数字:
产量k
从(k+1)的所有_数_得出的收益率
然而,这将创建大量链式生成器,在Python中是一个糟糕的实现。看看有没有更好的选择 虽然您正在寻找的构造是yield from
,但在Python中递归定义此函数(co)效率极低。使用迭代
def all_numbers_from(k):
while True:
yield k
k = k + 1
或者只使用itertools.count(k)
而yield from
是您要寻找的构造,在Python中递归定义此函数(co)效率极低。使用迭代
def all_numbers_from(k):
while True:
yield k
k = k + 1
或者只需使用itertools.count(k)
如果您能解释F#产生的结果,可能会有所帮助代码>可以。在黑暗中拍摄:你在寻找吗?@JonathonReinhart:可以从上面的片段推断出来,但我会解释:yield
返回一个值,yield!X
大致相当于在X
上进行迭代,生成其所有值(当然是惰性的)。是的,看起来像是yield from
@OmnowneDealysium,你可以用它来将解释添加到你的实际帖子中。如果你解释F#的收益率,可能会有所帮助代码>可以。在黑暗中拍摄:你在寻找吗?@JonathonReinhart:可以从上面的片段推断出来,但我会解释:yield
返回一个值,yield!X
大致相当于在X
上进行迭代,产生所有的值(当然是惰性的)。是的,看起来像是从@OwnedeLysum中产生的收益。你可以用它来将解释添加到你的实际帖子中。