python 可迭代物件與迭代器

2021-10-17 04:12:09 字數 1320 閱讀 9875

#%% 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...