迭代器生成器 & 迭代器的區別
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 再次呼叫這個函式時,一切都將從頭建立。...