1. 程式人生 > >python生成器推導式

python生成器推導式

1.生成器推導式是繼列表推導式後的有一中python推導式,他比列表推導式速度更快,佔用的記憶體也更少。2.使用生成器物件時,可以根據需要將他轉化為列表或者元組,也可以是喲個生成器對像__next__()方法或內建函式next()進行遍歷,其具有惰性求值的特點,進行一次遍歷後便不能再次方位內部元素,即訪問一次立馬清空生成器物件
>>> g = ((i+2)**2 for i in range(10))
>>> list(g)
[4, 9, 16, 25, 36, 49, 64, 81, 100, 121]
>>> list(g)    #便利結束後再次訪問時內部元素已經清空
[]
>>> g = ((i+2)**2 for i in range(10))    #重新建立一個生成器物件
>>> next(g)
4
>>> next(g)
9
>>> g.__next__()
16
>>> g.__next__()
25
>>> g.__next__()
36
>>> next(g)
49
>>> next(g)
64
>>> next(g)
81
>>> next(g)
100
>>> next(g)    #當next的下一個超出生成的範圍時,丟擲異常
121
>>> next(g)
Traceback (most recent call last):
  File "<pyshell#41>", line 1, in <module>
    next(g)
StopIteration