これが重複している場合は、すでにその後、申し訳ありません答え私は、forループを使用して、イテレータを生成することは簡単で、カウントitertoolsを読んでいた、と私はリスト内包でそれをやろうとしたとして、私はこの質問を越えItertoolsにBREAKを適用する方法はリスト内包表記でカウントされますか?
来ませんでしたしかし、私は
for x in itertools.count(5,2):
if x > 20:
break
else:
print(x)
5
7
9
11
13
15
17
19
私はリスト内包でこれを実行しようとしましたforループを使用することによって、この問題
from itertools import *
に直面しています
[x if x<20 else break for x in count(5,2)]
File "<ipython-input-9-436737c82775>", line 1
[x if x<20 else break for x in count(5,2)]
^
SyntaxError: invalid syntax
iはislice方法を試みたと私はどのように私は唯一の方法を数える使用して(休憩または任意のものを使用して)終了することができ、解答isliceメソッドを使用せずに
[x for x in itertools.islice(itertools.count(5),10)]
[5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
を得ましたか。
さらに、リスト内包表記で「ブレーク」を実装する方法は? takewhile
なぜ「islice」が気に入らないのですか?リスト内には「中断」はありませんが、「takewhile」(https://docs.python.org/3/library/itertools.html#itertools.takewhile)があります。 – bereal
なぜ 'range(5、20、2)'や 'range(5、15)'を使わないのですか? – falsetru
それは好きなことではない、私はちょうど "このようにしていてもいないのですか?" @bereal – avimatta