開始時のジェネレーターの空性の決定
ジェネレーターを使用する場合、作成時にその空性を決定することは、効率的なプログラム フローにとって不可欠です。ジェネレーターには明示的な isEmpty メソッドがありませんが、この問題に対処するためのアプローチがいくつかあります。
1 つの方法は、ジェネレーターの最初の項目を返すか、空の場合は None を返す Peak() 関数を利用することです。この関数は次のように実装できます:
def peek(iterable): try: first = next(iterable) except StopIteration: return None return first, itertools.chain([first], iterable)
この関数を使用するには、次の操作を行うことができます:
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.
このシナリオでは、返された結果が None であることを示します。空の発電機。逆に、有効な最初の要素と mysequence が返された場合は、通常の反復を続行できます。
以上が初期化時にジェネレーターが空かどうかを確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。