【发布时间】:2019-05-23 18:12:57
【问题描述】:
假设我们有一个生成器函数gen(),我们不知道它是否为空。
如果为空,我们想执行一个特殊的函数foo(),否则我们想对迭代器bar(elem)的每个元素执行一个函数。
我可以这样做:
is_empty = True
for elem in gen():
is_empty = False
bar(elem)
if is_empty: foo()
但这感觉不是很pythonic。还有其他方法吗?
【问题讨论】:
-
你的方法并不糟糕,顺便说一句。这已经够pythonic了。通常,您不应该关心迭代器是否为空,或者更确切地说,这应该通过迭代它的结果来知道。
标签: python python-3.x generator iterable