私はジェネレーターを持っていて、それが生成する最初の値が X よりも大きいことを知りたいと考えています。これを行う 1 つの方法は次のとおりですが、かなり長く見えます (それ自体が繰り返されるように読み取れます)。
def long_winded(gen,X)
n = next(gen)
while n < X: n=next(gen)
return n
私が書きたかったのは、もっと単純なことでした:
short_broken(gen,X):
while next(gen)<X: pass
return next(gen) # returns the SECOND value larger than X, as gen is called again
short_broken2(gen,X):
while n = next(gen)<X: pass # Not python syntax!
return n
同じ結果を返す簡潔な方法はありますか?