イテレータをループしていて、イテレータが空の場合に何らかのアクションを実行したいとします。これを行うために私が考えることができる2つの最良の方法は次のとおりです。
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
1つ目は、イテラブルがコレクションであることに依存し(イテラブルがループがある関数/メソッドに渡される場合には役に立たない)、2つ目はempty
、ループを通過するたびに見苦しいセットになります。
私が行方不明になっている別の方法はありますか、それとも2番目の選択肢が最善ですか?フラグ else
を消すようにこれを処理するループステートメントに追加できる句があれば、本当にすばらしいでしょう。not_found
私は巧妙なハックを探していません。
多くのコードを含むソリューションを探していません
シンプルな言語機能を探しています。経験豊富なPythonプログラマーなら誰でも理解できるように、反復可能ファイルを反復処理し、反復可能関数が空の場合に何らかのアクションを実行するための明確でPythonの方法を探しています。すべての反復でフラグを設定せずにそれを実行できれば、それは素晴らしいことです。これを行う単純なイディオムがない場合は、それを忘れてください。