python生成器推導式
阿新 • • 發佈:2019-01-31
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