Python 滿足迭代協議的可迭代物件

2021-10-02 12:36:52 字數 1067 閱讀 9467

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。實際上可迭代物件分為兩大類,一種是實際儲存的序列,即列表 元組,字串 另一...