[英]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.