4 回答

TA貢獻1773條經(jīng)驗 獲得超3個贊
有一個用于此目的的助手:itertools.chain
for?i?in?itertools.chain(my_list,?my_gen()): ????print(i)
注意:還有一個類似的函數(shù)用于聚合對地圖(dicts,...)的訪問ChainMap

TA貢獻1752條經(jīng)驗 獲得超4個贊
如果您想要相同的輸出,可以將生成器轉(zhuǎn)換為列表。
但這還不夠,因為您將打印列表本身,而不是其中的值。
您需要的是解壓列表,并在 for 循環(huán)中使用它。
my_list = [1,2,3]
def my_gen():
yield 4
yield 5
yield 6
for i in [*my_list, *list(my_gen())]:
print(i)

TA貢獻1982條經(jīng)驗 獲得超2個贊
for i in zip(my_list, my_gen()): print(*i)
說實話,我不太明白你的問題。請更好地解釋一下自己。
編輯:是*
解壓函數(shù)zip()
創(chuàng)建的元組。

TA貢獻1820條經(jīng)驗 獲得超10個贊
語法是一個相當(dāng)未知的功能yield from,它允許將要生成的元素委托給另一個生成器。這樣做的優(yōu)點是不轉(zhuǎn)換my_gen為列表。例如:
my_list = [1, 2, 3]
def my_gen():
yield 4
yield 5
yield 6
def my_final_gen():
yield from my_list
yield from my_gen()
for x in my_final_gen():
print(x)
添加回答
舉報