假设我正在循环一个迭代器,并且想要在迭代器为空时采取一些操作。我能想到的做到这一点,两个最好的方法是:尝试循环空迭代时采取行动的习惯方式
for i in iterable:
# do_something
if not iterable:
# do_something_else
和
empty = True
for i in iterable:
empty = False
# do_something
if empty:
# do_something_else
首先依赖于可迭代是一个集合(所以没用当迭代被传递到了函数/方法,其中循环是),第二次设置每循环看起来很丑陋的每个循环。
有没有另一种方法,我失踪或是第二个选择最好?这将是非常酷,如果有一些条款,我可以添加到循环语句,将为我处理这很像else
使not_found
旗帜消失。
我不是在寻找聪明的黑客。
我不是在寻找涉及大量的代码
我要寻找一个简单的语言功能的解决方案。 我在寻找一个明确和pythonic方式来迭代一个迭代,并采取一些行动,如果可迭代是空的,任何有经验的Python程序员都会明白。如果我可以做到这一点,而不需要在每次迭代中设置一个标志,那就太棒了。 如果没有这样的简单习语,那么就忘了它。
这当然不是很重要,但我相信你的例子中的评论应该读取'a <= x Bolo 2010-08-15 06:31:53
@Bolo好看。 – aaronasterling 2010-08-15 06:46:51
另请参阅:http://stackoverflow.com/questions/661603/how-do-i-know-if-a-generator-is-empty-from-the-start和http://stackoverflow.com/questions/ 1966591/hasnext-in-python-iterators – 2010-08-15 07:01:04