我在寫一個生成器函數。我想知道是否有一個更好的(閱讀:更Python,最好是使用列表理解)的方式來實現這樣的事情:清單理解中的捕獲和產出
generator = gen()
captures = []
for _ in xrange(x):
foo = next(generator)
directories.append(foo['name'])
yield foo
這裏的關鍵是,我不想捕獲整個的產量由gen()
返回的字典很大,這就是我使用生成器的原因。儘管如此,我確實需要捕捉所有'名字'。我覺得有一種方法可以用列表理解來做到這一點,但我只是沒有看到它。思考?
xrange是因爲gen()迭代到永遠,我不希望for循環永遠迭代。不過,我可以使用islice。我認爲最後一個就是答案。 – Lucretiel