創(chuàng)建生成器有很多種方法,第一種只要把列表生成式的【】替換成()就可以了
如圖:

image.png
創(chuàng)建f和g的區(qū)別在于外層的【】和(),f是一個列表,而g是一個生成器,我們可以直接打印出f中的每一個元素,而打印g中的元素則需要輸入next()函數(shù)來獲取生成器的下一個返回值

image.png
如果推算的算法比較復雜,用for循環(huán)無法實現(xiàn)時,還可以用函數(shù)實現(xiàn),比如斐波拉契數(shù)列不能用列表生成器寫出來,但是用函數(shù)打印出來就很簡單
如圖:

image.png
上面的函數(shù)和generator僅一步之遙。要把fib函數(shù)變成generator,只需要把print(b)改為yield b就可以了
如圖:

image.png