gpt4 book ai didi

python - 以前的产量操作 - python

转载 作者:行者123 更新时间:2023-12-04 11:51:39 25 4
gpt4 key购买 nike

最近我一直在使用python中的'yield'。我发现生成器函数非常有用。我的问题是,是否有一些东西可以减少生成器对象中富有想象力的光标。只是 next(genfun) 如何移动和输出容器中的第 +i 个项目,我想知道是否存在任何可能调用前一个(genfun)之类的函数并移动到容器中的第 -1 个项目的函数。
实际工作

def wordbyword():
words = ["a","b","c","d","e"]
for word in words:
yield word

getword = wordbyword()

next(getword)
next(getword)
输出
a
b
我想看到和实现的是
def wordbyword():
words = ["a","b","c","d","e"]
for word in words:
yield word

getword = wordbyword()

next(getword)
next(getword)
previous(getword)
预期输出
a
b
a
这可能听起来很傻,但是有没有这个 上一页 在发电机中,如果不是为什么会这样?。为什么我们不能递减迭代器,或者我对现有的方法一无所知,请给一些光照。什么是实现我手头所拥有的最接近的方法。

最佳答案

不,没有这样的函数可以返回到生成器函数中。原因是 Python 本身不会在生成器函数中存储先前的值,并且由于它不存储它,因此它也无法执行重新计算。
例如,如果您的生成器是 时间敏感 函数,比如

def time_sensitive_generator():
yield datetime.now()
您将无法重新计算此生成器函数中的先前值。
当然,这只是无法计算先前值的众多可能情况之一,但这就是想法。
如果您不自己存储值(value),它将永远丢失。

关于python - 以前的产量操作 - python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67858829/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com