#%% md
可迭代物件iterable =
可迭代物件iterable
特徵:1、將for...in...這類語句迭代讀取一條資料供我們使用的物件;
2、所有的序列型別(也就是後面要說到的 sequence),都是可迭代物件,如 list、str、tuple,
還有對映型別 dict、檔案物件等非序列型別也是可迭代物件
3、自定義物件在實現了 iter() 方法或者實現了 getitem() 方法後,也可以成為可迭代物件;
4、iter()方法接受乙個可迭代物件,該方法的返回值是乙個迭代器(iterator)
#%% 可迭代物件-列表
for data in [1,2,3]:
print(data)
#%% 可迭代物件-元組
for data in (1,2,3):
print(data)
#%% 可迭代物件-字典
for key,data in .items():
print(key,data)
#%% 可迭代物件-字串
for s in 'abc':
print(s)
#%% 可迭代物件-自定義
class myiter(object):
def __init__(self,num):
self.num = num
#這裡需要返回乙個迭代器的例項
def __iter__(self): #也可以使用__getitem__
return myiterator(self.num) #返回迭代器
#可迭代器-自定義
class myiterator(object):
def __init__(self,num):
self.num = num
self.now = 0
def __iter__(self): #返回迭代器本身
return self
def __next__(self): #返回下乙個值
if self.now < self.num:
self.now+=1
return self.now
else:
raise stopiteration #丟擲異常
#%% 可迭代物件
print('可迭代物件')
for i in myiter(5):
print(i)
print('可迭代器')
print(myiter(5).__iter__().__next__())
python迭代 可迭代物件與迭代器物件
問題舉例 某軟體要求,從網路抓取各個城市的氣溫資訊,並依次顯示 北京 15 22 上海 18 23 如果一次抓取所有城市氣溫資訊再顯示,顯示第乙個城市的氣溫時會由很長的延時,並且浪費儲存空間,我們期望以 用時訪問 的策略,並且把所有城市的氣溫資訊封裝 到乙個物件裡,可用for語句進行迭代。來個栗子 ...
python 迭代器與可迭代物件
主要有兩個方法next 與iter next不斷返回下乙個元素,知道元素全部返回後出現異常,可以節省記憶體空間。iter是迭代,可以把乙個列表直接轉換成迭代器,然後使用next 方法。data list 1,2,3,4,5 data list iter data list print next da...
Python 迭代器與可迭代物件
迭代器可以讓我們訪問集合的時候變得非常方便。之前我們通過for.in.的方式訪問乙個集合的時候,就是使用迭代器完成的。如果沒有迭代器,那麼我們只能通過while迴圈,每次迴圈的時候通過下標訪問了。可以直接使用for迴圈遍歷的物件,成為可迭代的物件,常見的可迭代的物件有 list tuple dict...