python生成器使用方式

2021-10-02 09:49:51 字數 850 閱讀 6443

生成器是一種特殊的迭代器。

生成器的第一種建立方式:

生成器就是將列表的中括號程式設計小括號即可

nums =

[x for x in

range(10

)]#結果:[0,1,2,3,4,5,6,7,8,9]

nums =

(x for x in

range(10

))#結果:at .......>

for num in nums:

print

(num)

#結果:0,1,2,3,4,5,.......

說明:返回列表和返回生成器的區別是列表占用空間,而生成器返回的是生成的方式

生成器的第二種建立方式:

建立乙個函式

def

create_num

(all_num)

: a, b =0,

1 current_num =

0while current_num < all_num:

yield a

a, b = b, a+b

current_num +=

1obj = create_num(10)

#無論你建立的是否是乙個函式,只要在這中間加上yield,那麼,他就是乙個生成器

#當你在下方呼叫函式時,就是建立乙個生成器

說明:我們可以建立多個生成器,並且會按照建立順序來執行

同樣可以用send來代替呼叫執行

ret = obj.send(

none

)print

(ret)

Jazzy 文件生成器使用

jazzy 文件生成器使用 jazzy 是乙個命令列實用程式,可以為 swift 或者 objective c 生成文件,輸出風格和官方文件匹配 也可以自定義模板 如果是 swift和 objective c 混合專案生成文件,需要通過 sourcekitten 生成分別生成 swift和 obje...

keras 資料生成器使用小結

今天嘗試用keras實現simgan,在讀入資料時遇到了幾個坑,記錄一下。coding utf 8 import os import sys import keras from keras import layers from keras import models from keras impor...

迭代器和生成器,使用生成器讀取大檔案

可迭代型別 和 迭代器 什麼是迭代協議。迭代器是什麼?是訪問集合類的一種方式,一般用來遍歷資料。for迴圈可以遍歷資料 迭代器和以下標的訪問方式不一樣,迭代器是不能返回的 後退 alist 0 alist 2 alist 1 是不行的 下標訪問 背後的原理 協議 是 getitem 迭代器提供了一種...