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__()【数据类型的内置函数】