簡體   English   中英

如何組合發電機的發電機?

[英]How to combine generator of generators?

我想組合一個生成器的生成器,這樣當我在所述生成器上調用 list() 時,我會得到一個生成器元素的列表,而不是生成器的列表。 例如,我目前正在做:

list(itertools.chain((i for i in range(j)) for j in range(3)))

這是返回:

[<generator object <genexpr>.<genexpr> at 0x7fc48921e200>,
<generator object <genexpr>.<genexpr> at 0x7fc48921eeb8>,
<generator object <genexpr>.<genexpr> at 0x7fc48921e7d8>]

但我希望它返回如下內容:

[0, 0, 1, 0, 1, 2]

你可以這樣做,

list(itertools.chain.from_iterable((i for i in range(j+1)) for j in range(3)))
# [0, 0, 1, 0, 1, 2]

range(j)不會給出您想要的輸出。 你必須使用range(j+1)

您可以在不使用迭代器的情況下這樣做。

In [58]: list(i for j in range(3) for i in range(j+1))
Out[58]: [0, 0, 1, 0, 1, 2]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM