2012-03-21 9 views
-3

ジェネレータから返された最初の「n」個のアイテムからリストを作成するにはどうすればよいですか?ジェネレータからリストを入力

(私はこれは簡単です知っていると私はRTFMことができ、時にはそれがPOFSOに簡単です。)

+2

私は認めざるを得ないが、私はPOFSOが何であるか知らないが、RTFMは、この場合には間違いなく良いです。 – bereal

+2

@bereal私は同意しない。この場合、POFSOはおそらく約10分を節約しました。これは下降音の価値があります。 – gcbenison

+0

多くの人々は、これが私たちのための場所であることを容易に認めています。「RTFMにはあまりにも怠惰です。正直カウント。 +1 – Droogans

答えて

1
import itertools 
foo = [x for x in itertools.islice(generator, n)] 

...あなたのジェネレータと仮定名前はgeneratorで、nは必要な要素の数です。

​​には、このような有用な接着剤がたくさんあります。事ありませんitertoolsモジュールでisliceコマンドはあり

0

あなたはisliceを使用したい:

from itertools import islice 
it = (i for i in [1,2,3,4]) 
sliced = islice(it,2) 
for i in it: 
    print i 

# output: 
# 1 
# 2 
3

>>> import itertools 

>>> iterator = itertools.count() #just counter from 0 to infinity 
>>> list(itertools.islice(iterator,10)) 
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 
関連する問題