1. 可迭代物件
物件:python中一切皆物件。乙個實實在在存在的值就叫物件。比如:a = 1, a就叫物件。
可迭代:更新迭代。重複的、迴圈的乙個過程。更新迭代每次都有新的內容。
字面意思:可以進行迴圈更新的乙個實實在在的值。
專業角度:內部含有__iter__
方法的物件稱之為可迭代物件。
# 獲取乙個物件的所有方法
s1 =
'lucy'
print
(dir
(s1)
)
'__iter__'
indir
(物件)
使用可迭代物件的優點:
缺點:
li =[1
,2,3
]for i in li:
print
(i)# 看似列表可以for迴圈直接取值,其實不是的。裡面進行了一步轉化,把可迭代物件轉化成了迭代器。可迭代物件不能直接取值。
2. 迭代器
判斷是否是迭代器
(
'__iter__'
indir
(物件)
)and
('__next__'
indir
(物件)
)
with
open
('text'
,'w'
, encoding=
'utf8')as
file
:print((
'__iter__'
indir
(file))
and(
'__next__'
indir
(file))
)# true
s =
'lucy'
obj =
iter
(s)# s.__iter__()
print
(next
(obj)
)# print(obj.__next__())
迭代器的缺點
li =[11
,22,33
,44,55
,66,77
,88,99
]obj =
iter
(li)
for i in
range(3
):print
(next
(obj)
)for i in
range(4
):print
(next
(obj)
)
可迭代物件與迭代器對比
while迴圈模擬for迴圈機制
li =[11
,22,33
,44,55
,66,77
,88,99
]obj =
iter
(li)
while1:
try:
print
(next
(obj)
)except stopiteration:
break
python中迭代器 python中的迭代器
如果給定乙個list或tuple,我們可以通過for迴圈來遍歷這個list或tuple,這種遍歷我們稱為迭代 iteration d for key in d print key ac b當我們使用for迴圈時,只要作用於乙個可迭代物件,for迴圈就可以正常執行,而我們不太關心該物件究竟是list還...
Python中的迭代器
可以直接作用於for迴圈的資料型別有以下幾種 一類是集合資料型別,如list tuple dict set str等 一類是generator,包括生成器和帶yield的生成器函式。這些可以直接作用於for迴圈的物件統稱為可迭代物件 iterable python的for迴圈本質上就是通過不斷呼叫n...
python中的迭代器
什麼是迭代器?迭代器是帶有next方法的簡單物件,當然也要實現 iter 函式。迭代器能在一串行的值上進行迭代,當沒有可供迭代時,next方法就會引發stopiteration 的異常。python中有很多的物件都是迭代器,例如 列表,元素,字串,檔案,對映,集合 如何使用迭代器?1.for 變數 ...