Python 3.2 迭代器的next函數

在python中,使用iter函數可以獲得有序聚合類型的迭代器,我個人將迭代器理解爲帶有next指針的單向鏈表,獲取到的迭代器爲鏈表的表頭,表頭內容爲空,next指針指向有序聚合類型的第一個元素。在訪問鏈表最後一個元素的next指針時,python會報錯StopIteration。

Python3.x以上的版本在使用next函數時需要注意的是:next()函數在3.x以上的版本更改爲__next__().


使用for迭代器打印文件中的內容的代碼如下:

file_obj=open(r'E:\Project\Python\123.txt','r')

for string in file_obj:
    string=string.rstrip('\n')
    print(string)
    
file_obj.close()

在上述代碼中,文件對象file_obj爲有序聚合類型,for循環會自動調用file_obj的迭代器,並調用該迭代器的next函數,知道發生StopIteration錯誤。

下邊的代碼模擬for循環中的迭代器,顯式調用next函數訪問字符串的元素。

s='www.scu.edu.com'

it=iter(s)
length=len(s)
i=0
while i<length:
    print(it.__next__())
    i=i+1






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章