空のジェネレーターのステータスを知る
ジェネレーターが空かどうかを事前に知ることで、特定のコードパスを大幅に簡素化できます。残念ながら、ジェネレーターには、これを判断するための、peek、hasNext、または isEmpty のような簡単なメソッドが用意されていません。
提案:
これを回避するには、これを手動で行うには、ピーク関数を使用します。
<code class="python">def peek(iterable): try: first = next(iterable) except StopIteration: return None return first, itertools.chain([first], iterable)</code>
使用法:
ピーク関数を取得したら、次のように使用できます:
<code class="python">res = peek(mysequence) if res is None: # sequence is empty. Do stuff. else: first, mysequence = res # Do something with first, maybe? # Then iterate over the sequence: for element in mysequence: # etc.</code>
このアプローチにより、シーケンス全体を走査することなく、空のジェネレーターを効果的に処理できます。
以上がPython で空のジェネレーターのステータスを確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。