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__()【數據類型的內置函數】