gpt4 book ai didi

python - 是否有一些内置标记序列的最后一个?

转载 作者:太空宇宙 更新时间:2023-11-03 13:42:00 24 4
gpt4 key购买 nike

我需要这样的东西:

>>> for i in mark_last([1, 2, 3]):
... print(i)
...
(1, False)
(2, False)
(3, True)

我是这样实现的,但是...

def mark_last(li):
items = iter(items)
try:
prev = next(items)
except StopIteration:
return
for item in items:
yield prev, False
prev = item
yield prev, True

有内置的吗?或者更短的方法来做到这一点?也许与 itertools.groupby() 相结合? – 不接受带有 len() 的技巧,因为它们不适用于生成器。

最佳答案

Is there some built-in which marks the last of a sequence?

不,没有。

除了两点,你的功能很好:

  1. 它如何处理空序列?
  2. 您应该break 而不是raise StopIteration;最终 raise StopIteration 将导致 RunTimeError ( PEP 479 )。

关于python - 是否有一些内置标记序列的最后一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28933174/

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