Python 生成器 迭代器

2021-10-09 07:53:20 字數 3044 閱讀 3902

迭代器生成器 & 迭代器的區別

list1 =[1

,2,3

,4,5

,6]generator1 =

(value *

3for value in list1)

print

(type

(generator1)

)print

(generator1.__next__(

), end=

' '

)# __next__() 函式

print

(generator1.__next__(

), end=

' '

)print

(next

(generator1)

, end=

' '

)# next() 函式

print

(next

(generator1)

, end=

' '

)# ---------- 輸出 ----------

# # 3 6 9 12

配合迴圈使用

list1 =[1

,2,3

,4,5

,6]generator1 =

(value *

3for value in list1)

for value in

range(4

):print

(next

(generator1)

, end=

' '

)# ---------- 輸出 ----------

# 3 6 9 12

def

fun():

for i in

range(10

):yield i *

3f = fun(

)print

(type

(f))

for value in

range(4

):print

(next

(f), end=

' '

)# ---------- 輸出 ----------

# # 0 3 6 9

def

fun():

for i in

range(10

):yield i *

3f = fun(

)list1 =

[value for value in f]

list2 =

[value for value in f]

print

(list1)

print

(list2)

# ---------- 輸出 ----------

# [0, 3, 6, 9, 12, 15, 18, 21, 24, 27]

#

list1 =

[value for value in

range(10

)]iterator =

iter

(list1)

# iterator = list1.__iter__()

print

(iterator)

print

(type

(iterator)

)# ---------- 輸出 ----------

# #

list1 =

[value for value in

range(10

)]iterator =

iter

(list1)

for i in

range(5

):print

(next

(iterator)*3

, end=

' '

)# ---------- 輸出 ----------

# 0 3 6 9 12

list1 =

[value for value in

range(10

)]iterator =

iter

(list1)

result1 =

[i for i in iterator]

print

(result1)

result2 =

[i for i in iterator]

print

(result2)

# ---------- 輸出 ----------

# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

#

序列使用reversed ( )函式後,會返回乙個反轉的迭代器

list1 =

['sun wukong'

,'zhu bajie'

,'monk sha'

,'tang monk'

]iterator1 =

reversed

(list1)

print

(type

(iterator1)

)list2 =

[value for value in iterator1]

print

(list2)

list3 =

[value for value in iterator1]

print

(list3)

# ---------- 輸出 ----------

# # ['tang monk', 'monk sha', 'zhu bajie', 'sun wukong']

#

生成器本質上是乙個函式,用於生成元素

迭代器是可以執行 next ( ) 操作的物件,用於訪問序列中的元素

Python 迭代器 生成器

可以直接作用於for迴圈的物件,統稱為可迭代物件 iterable。iterator物件表示的是乙個資料流,iterator物件可以被next 函式呼叫並不斷返回下乙個資料,直到沒有資料時丟擲stopiteration錯誤。可以把這個資料流看做是乙個有序序列,但我們卻不能提前知道序列的長度,只能不斷...

python 迭代器,生成器

什麼事迭代 可直接用作與for迴圈的物件統稱為可迭代物件 可以被next 函式呼叫,並不斷返回下乙個值的物件稱為迭代器,所有的iterable均可以通過內建函式iter 來轉變為iterator。對於迭代器來講,有乙個next 就夠了。在你使用for和in語句時,程式就會自動呼叫即將被處理的物件的可...

python 迭代器 生成器

知識背景 1 呼叫乙個普通的python函式時,一般是從函式的第一行 開始執行,結束於return語句 異常或者函式結束 可以看作隱式的返回none 2 一旦函式將控制權交還給呼叫者,就意味著全部結束。函式中做的所有工作以及儲存在區域性變數中的資料都將丟失 3 再次呼叫這個函式時,一切都將從頭建立。...