假設我正在循環一個迭代器,並且想要在迭代器爲空時採取一些操作。我能想到的做到這一點,兩個最好的方法是:嘗試循環空迭代時採取行動的習慣方式
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