gpt4 book ai didi

python - 如何确定 Python 生成器中的值是否为最后一个?

转载 作者:行者123 更新时间:2023-11-28 19:41:11 26 4
gpt4 key购买 nike

由于生成器延迟返回值,我如何确定从生成器返回的值是否是最后一个?我在这上面花了大约一个小时,但无法弄明白。

感谢任何帮助。有可能吗??

谢谢,Boda Cydo!

最佳答案

您可以将生成器包装在一个生成器中,该生成器生成一个对序列,其第一个元素是一个 bool 值,告诉您该元素是否是最后一个元素:

def ending(generator):
z2 = generator.next()
z1 = generator.next()
for x in generator:
yield (False, z2)
z2, z1 = z1, x
yield (True, z2)
yield (False, z1)

让我们在一个简单的迭代器上测试它:

>>> g = iter('abcd')
>>> g
<iterator object at 0x9925b0>

你应该得到:

>>> for is_last_but_one, char in ending(g):
... if is_last_but_one:
... print "The last but one is", char
...
The last but one is c

看看引擎盖下发生了什么:

>>> g = iter('abcd')
>>> for x in ending(g):
... print x
...
(False, 'a')
(False, 'b')
(True, 'c')
(False, 'd')

关于python - 如何确定 Python 生成器中的值是否为最后一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2421368/

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