python中的for循環(迭代器機制)


python中的for循環:

1 x = 'hello'
2 for i in x:#iter_x=x.__iter__()
3     print(i)#iter_x.__next__()
iter_l =x.__iter__()#遵循迭代器協議,生成可迭代對象
print(iter_l.__next__())#for循環和索引沒關系 基於迭代器機制
對列表的索引:【超出索引值報錯】
1 l = [1,2,3]
2 print(l[0])
3 index = 0
4 while index<len(l):
5     print(l[index])
6     index+=1

對集合的索引:【超出索引值報錯】

1 s = {1,2,3,4}
2 iter_s = s.__iter__()
3 print(iter_s.__next__())
4 print(iter_s.__next__())
5 print(iter_s.__next__())
6 print(iter_s.__next__())

對字典的索引:【超出索引值則報錯】

1 dict = {'name':'alex','age':18}
2 iter_d =dict.__iter__()
3 print(iter_d.__next__())
4 print(iter_d.__next__())
5 # print(iter_d.__next__())#報錯:dict默認索引值為key
6 # print(iter_d.__next__())#報錯:dict默認索引值為key

對文件的索引:

python 中for循環的強大之處在於可以遍歷序列和非序列類型 例如文件
1 f = open('字節方式與文件.txt','r+',encoding='utf-8')
2 text_f =f.__iter__()
3 print(text_f.__next__(),end='')
4 print(text_f.__next__())
5 print(text_f.__next__())
6 f.close()

 補充:next()內置函數

1 list=['xx1','xx2','xx3','xx4']
2 iter_1=l.__iter__()
3 #print(iter_l.__next__())
4 #print(iter_l.__next__())
5 #print(iter_l.__next__())
6 #print(iter_l.__next__())
7 print(next(iter_1))#next()python內置函數 調用iter_l.__next__()【數據類型的內置函數】

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM