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