リスト内包表記/ジェネレーター式でif
andを次のように使用できますfor
list(i for i in range(100) if i*i < 30)
これが最も効率的ではないことはわかっていますが、条件がはるかに複雑になる可能性があるため、我慢してください。これは単なる例です。ただし、これはまだ100回の反復を経ており、最初の6回の値しか得られません。次のようなもので停止する場所をジェネレータ式に伝える方法はありますか:
list(i for i in range(100) while i*i < 30)
ただし、while
ジェネレータ式では理解されません。ですから、私の質問は、新しい値が生成されなくても計算を続行しないように、停止条件を指定してジェネレーター式を作成するにはどうすればよいかということです。