python 遍歷生成器元素

2021-10-05 01:40:25 字數 2943 閱讀 1907

a =

(x for x in

range(10

))print

(a)print

(type

(a))

輸出為:

 at 0x000001bd5edad930

>

<

class

'generator'

>

可見a是乙個生成器

下面我們把它的元素輸出:

1.

a =

(x for x in

range(10

))print

(list

(a))

輸出為:

[0,

1,2,

3,4,

5,6,

7,8,

9]

2.

a =

(x for x in

range(10

))print

(a.__next__())

print

(a.__next__())

print

(a.__next__())

print

(a.__next__())

print

(next

(a))

print

(next

(a))

print

(next

(a))

print

(next

(a))

print

(next

(a))

print

(next

(a))

輸出:

012

3456

789

上面我們已經把a中的元素全部輸出了,如果繼續print的話就會出錯

如下:

traceback (most recent call last)

: file "c:/users/top/pycharmprojects/untitled4/venv/a_4.py"

, line 12,in

print

(next

(a))

stopiteration01

2345

6789

生成器,我們把它從頭到尾遍歷一遍,他就沒了,如下:

a =

(x for x in

range(10

))print

(a.__next__())

print

(a.__next__())

print

(a.__next__())

print

(next

(a))

print

(next

(a))

print

(next

(a))

print

(next

(a))

print

(next

(a))

print

(next

(a))

print

(next

(a))

print

(type

(a))

print

('就算元素全沒了,我還是generator!!!'

,list

(a))

輸出:

012

3456

789<

class

'generator'

>

就算元素全沒了,我還是generator!!! [

]

或者:

a =

(x for x in

range(10

))print

(list

(a))

#這個地方遍歷了

print

(a.__next__())

print

(a.__next__())

print

(a.__next__())

print

(next

(a))

print

(next

(a))

print

(next

(a))

print

(next

(a))

print

(next

(a))

print

(next

(a))

print

(next

(a))

print

(type

(a))

#print('就算元素全沒了,我還是generator!!!',list(a))

輸出:

[0,

1,2,

3,4,

5,6,

7,8,

9]traceback (most recent call last)

: file "c:/users/top/pycharmprojects/untitled4/venv/a_4.py"

, line 3,in

print

(a.__next__())

stopiteration

#這個

print

(a)#不是遍歷,提醒一下。

python 生成器作用 Python生成器

生成器介紹 在函式內部包含yield關鍵字,那麼該函式執行的結果是生成器,生成器就是迭代器。生成器的功能 把函式結果做成迭代器 以一種優雅的方式封裝好iter,next 提供了一種自己定義迭代器的方式。使用生成器建立乙個迭代器 def a print a yield 11 使用yield,執行後返回...

python生成器好處 Python生成器筆記

python中三大器有迭代器,生成器,裝飾器,本文主要講述生成器。主要從生成器的概念,本質,以及yield關鍵字的使用執行過程。本質 生成器是一類特殊的迭代器,使用了yield關鍵字的函式不再是函式,而是生成器。使用了yield的函式就是生成器 1.yield關鍵字有兩點作用 1.1 yield語句...

python生成器函式 Python 生成器函式

一 生成器 生成器指的是生成器物件,可由生成器表示式得到,也可使用 yield 關鍵字得到乙個生成器函式,呼叫這個函式得到乙個生成器物件 生成器物件,是乙個可迭代物件,是乙個迭代器 生成器物件,是延遲計算 惰性求值的 1.1 生成器函式 函式體重包含 yield 語句的函式,就是生成器函式,呼叫後返...