python3生成器_Python3 生成器
Python3 生成器
閱讀 (125) |
發布于 2020-05-19 14:29:25
在Python中,一邊循環一邊計算出元素的機制,稱為生成器:generator。
生成器的優點:一次返回一個結果,延遲計算。這對于大數據量處理,是個非常有用的優勢。占用內存量是工程師必須考慮的一個問題。
提高代碼可讀性。使用生成器,代碼行數更少。
生成器有兩種表示形式:生成器函數:外表看上去像是一個函數,但是沒有用return語句一次性的返回整個結果對象列表,使用yield語句一次返回一個結果。
生成器推導式:類似列表推導式,將方括號換成了圓括號,返回按需產生的一個結果對象,而不是構建一個結果列表。
1. 生成器函數:
那么究竟什么是生成器呢?下面舉個栗子:def test():
print('start') #循環之前的語句只有在第一次調用時會被執行。
for i in range(1,10):
yield I #遇到 yield 關鍵字暫停,保存當前所有的運行信息,返回yield的值。
j = i+1 #下一次調用,從 yield 下一行開始執行。
print('第', j, "次調用")
a = test() #此時 a 就是一個生成器。可以用來迭代。
print(next(a))
print(next(a))
print(next(a))
################
執行結果如下:
start
1
第 2 次調用
2
第 3 次調用
不過一般大部分時候,我們會使用for循環來迭代它。for i in a:
print(i)
2. 生成器推導式:
用生成器推導式來寫剛才的例子,就簡單多了。g = (x for x in range(1,10))
我們也來用 for 循環執行一下:for i in g:
print(i)
總結
以上是生活随笔為你收集整理的python3生成器_Python3 生成器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 没找到库_这十个Pytho
- 下一篇: nginx 重定向_虚拟机中安装ngin