大家好,我是皮皮。
一、前言
前幾天在Python最強王者交流群有個叫【Chloe】的粉絲問了一個Python生成器的問題,這裡拿出來給大家分享下,一起學習下。

二、解決過程
這裡【月神】給出了解答,如下圖所示:
當然了,這塊有點難了解的部分,如下圖所示:
如果加
return
的話,效果就不一樣了。
這裡在額外細節化一下,【瑜亮老師】給出了
yield
用法細節。
這個題目主要就考察yield傳回結果時,“暫停”函數,再次調用後繼續執行
yield
後面的代碼。
這裡給出一份代碼,了解起來更加容易一些:
def even_odd(x):
for j in x:
if j % 2 == 0:
yield 'Even' + str(j)
yield 'Odd' + str(j)
num = [0, 1, 2, 3, 4, 5]
for i in even_odd(num):
print(i, end=" ")
這個輸出的結果是:
Even0 Odd0 Odd1 Even2 Odd2 Odd3 Even4 Odd4 Odd5
最後,總結下生成器的用法和特點,