python生成器推導式

2021-08-18 04:39:19 字數 810 閱讀 2539

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 "", line 1, in next(g)

stopiteration

生成器,生成器推導式和列表推導式

python社群,大部分生成器和迭代器是一種 生成器的本質是迭代器 唯一區別 生成器是我們自己用python 構建的資料結構 迭代器都是提供的,或者轉化得來的 生成器函式 生成器表示式 python提供的 yield 乙個next 對應乙個yield yield和下乙個yield中間有 的話只執行乙...

推導式 生成器

1.推導式生成列表 表示式 for item in 可迭代物件 或者 表示式 for item in 可迭代物件 if 條件判斷 推導式生成列表 ls x for x in range 1,5 if x 2 0 2,4 2.生成器生成元組 表示式 for item in 可迭代物件 或者 表示式 f...

生成器 推導式

建立生成器的方法 1.通過生成器函式 yield 2.生成器表示式 def func1 x sum 0 for i in range 1,x x 1 yield xg func1 6 生成器函式對 print g 表示這是乙個迭代器print g.next 乙個next對應乙個yield print...