python 可迭代物件:
# 迭代:# 迭代工具:for.推導..map等
# 滿足迭代協議f.__next__()
# 迭代物件分為:1.可直接用迭代協議迭代的迭代器物件,如文字;
# 2.可以迭代的物件,但需要用iter()函式生成迭代協議形成迭代器物件,再用迭代協議迭代,如for_list;
a = ['jdiejwi0', 'mwiejf', 'diwf']for i in a:
print(i)
print(iter(a) is a)
# 所以:for 對列表進行迭代,是有個中間iter()生成直接迭代器物件的過程,再進行迭代(滿足迭代協議)
# 對於for迭代,這個中間過程是自動的,但是有這麼個中間過程
# 法2:對list手動新增迭代器,轉為直接,使其迭代
a = ['jdiejwi0', 'mwiejf', 'diwf']
zhijiediedai = iter(a)
for i in range(len(a)):
print(zhijiediedai.__next__()) # 一般是用for迭代(中間iter生成可迭代物件)
# 結合for推導一些迭代方法
urls = ['youpinketang', 'uike.cc', 'codeclassroom.com']
res = [url.upper() for url in urls if url.endswith('.com')]
print(res)
# 所以不管是間接還是直接,滿足迭代協議的物件都是可迭代物件
# 可迭代物件:基本資料結果型別,range,zip,map
reult = zip(['a', 'b', 'c'], [1, 2, 3])
print(reult)
print(type(reult))
# 判斷zip是否為直接迭代物件
print(iter(reult) is reult)
for i in reult:
print(i)
Python高階專題 可迭代物件協議以及迭代器
1.迭代協議與可迭代物件 只有實現了迭代協議 iter 才可以稱為可迭代物件 2.迭代器 訪問集合內元素的方式,用於遍歷資料,但是無法返回,提供了惰性訪問資料,同時實現了 iter 以及 next 協議 from collections.abc import iterable,iterator it...
python迭代器的作用 python的迭代器
迭代是指能夠從序列中訪問出素的一種方式,在我們遍歷使用for.in.的物件都是可迭代物件。這裡需要補充一點的是python中一切都是物件。判斷乙個物件是否是可迭代物件可以通過instance函式 像我們常用的列表,字典,字串,集合,元組都是可迭代物件。那麼我們是否可以自定義乙個可迭代物件呢,答案是肯...
python迭代器作用 python中的迭代器
python中有一類工具叫做迭代工具,它能從左至右掃瞄物件。這包括了for迴圈 列表解析 in成員關係測試以及map內建函式等。可以用在上述迭代工具環境中,通過一次次迭代不斷產生結果的物件稱為可迭代物件,即是iterable。實際上可迭代物件分為兩大類,一種是實際儲存的序列,即列表 元組,字串 另一...