2
無限の発電機を使用する場合は、if
を使用して、アイテムをリストに入力しないようにすることができますが、ループを解除することはできません。リストの理解を破る方法はありますか?
これは実際にクラッシュしてハングします。でもKeyboardInterrupt
は私を保存(理由BTWがある?)できない
import itertools
a = [x for x in itertools.count() if x<10]
私は自分自身の無限のジェネレータ
def mygen():
i=0
while True:
yield i
i +=1
を使用している場合、これは明らかに、今KeyboardInterrupt
a = [x for x in mygen() if x<10]
まで実行されますが適切なfor
ループのために、条件が満たされたときに中断することがあります
a = []
for x in itertools.count():
a.append(x)
if x>9:
break
私の質問:リストの理解を破るいくつかの方法がありますか?
リストの理解は*クルーボーイ*ではありません。 'x 'が' count'オブジェクト内のすべての項目を実行しようとし、 '10'より小さいもののみを返します。それはどんどん進んでいきます。 。 。 –