繁体   English   中英

Python 从生成器项中获取最后一个元素

[英]Python get the last element from generator items

我非常惊讶使用生成器而不是列表。 但我找不到这个问题的任何解决方案。

从生成器项中获取第一个和最后一个元素的有效方法是什么? 因为使用 list 我们可以只做 lst[0] 和 lst[-1]

谢谢您的帮助。 我无法提供任何代码,因为这显然正是我想知道的:)

你必须遍历整个事情。 假设你有这个生成器:

def foo():
    yield 0
    yield 1
    yield 2
    yield 3

获取第一个和最后一个值的最简单方法是将生成器转换为列表。 然后使用列表查找访问这些值。

data = list(foo())
print(data[0], data[-1])

如果您想避免创建容器,您可以使用 for 循环来耗尽生成器。

gen = foo()
first = last = next(gen)
for last in gen: pass

print(first, last)

注意:当生成器没有生成值时,您需要特殊情况。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM