生成器是一種特殊的迭代器。
生成器的第一種建立方式:
生成器就是將列表的中括號程式設計小括號即可
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 迭代器提供了一種...