我需要这样的东西:
>>> 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()
的技巧,因为它们不适用于生成器。 最佳答案
是否有一些内置的标记序列的最后一个?
不,没有。
你的功能很好,除了两点:
它如何处理空序列?
你不应该只是raise StopIteration
,而应该是break
;最终raise StopIteration
会导致RunTimeError
(PEP 479)。
关于python - 是否有一些内置的标记序列的末尾?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28933174/