在Python中判断生成器是否为空的优雅方法

2 投票
1 回答
1046 浏览
提问于 2025-04-18 17:26

我在用Python写一个生成器,想要在它有内容的时候循环处理这些内容,如果没有内容则执行不同的操作。就像这样:

if generator is empty:
    perform some action
else:
    for item in generator:
        perform some actions

我知道没有办法在不遍历生成器的情况下判断它是否为空,但我觉得应该有一些优雅的方法来实现这个逻辑。我能想到的最好办法是类似于https://stackoverflow.com/a/664239/161801的方式,但我觉得这并不优雅,因为它需要把生成器的第一个元素和后面的元素分开处理。

1 个回答

4

只要设置一个标志,如果生成器不为空:

isGeneratorEmpty = True
for item in generator:
    isGeneratorEmpty = False
    perform some actions

if isGeneratorEmpty:
    perform some actions

撰写回答