网站的制作视频,163企业邮箱网页版,百度如何搜索到自己的网站,自动发卡网站开发1、什么是迭代器迭代器 指的是迭代取值的工具#xff0c;迭代是一个重复的过程#xff0c;每次重复都是基于上一次的结果而继续的#xff0c;单纯的重复并不是迭代。比如#xff1a;AB生育了C, CDE#xff0c;生育过程是迭代#xff0c;克隆就不是迭代。2、为何要有迭…1、什么是迭代器迭代器 指的是迭代取值的工具迭代是一个重复的过程每次重复都是基于上一次的结果而继续的单纯的重复并不是迭代。比如AB生育了C, CDE生育过程是迭代克隆就不是迭代。2、为何要有迭代器迭代器是用来迭代取值的工具而涉及到把多个值循环取出来的类型有列表、字符串、元组、字典、集合、打开的文件对象实现一个简单的迭代取值功能(基于索引)list001 [abc, bbc, cba, bbq]i 0while i len(list001):print(list001[i])i 1上面这种迭代取值的方式只适用于有索引的数据类型列表字符串字典为了解决基于索引迭代取值的局限性python必须提供一种能够不依赖索引的取值方式这就是迭代器首先了解一下“可迭代对象”可以转换成“迭代器”的对象可迭代对象但凡内置有 _ iter _ 方法的都称之为可迭代对象.__iter__()[].__iter__()().__iter__(){}.__iter__()with open(a.txt, modew) as f:f.__iter__()pass(字符串列表元组字典集合 打开的文件都是可迭代对象)调用 可迭代对象下的 _ iter_ 方法会将其转换成迭代器对象d {a: 1, b: 2, c: 3}res d.__iter__()print(res)运行结果转换成迭代器后有一个 _ next _ 方法d {a: 1, b: 2, c: 3}res d.__iter__()print(res)print(res.__next__())print(res.__next__())print(res.__next__())运行结果abc--------分界线--------#重复执行迭代器会怎样#在一个迭代器取值取干净的情况下再对其取值取不到#必须再调用一次迭代器才能取值#步骤 1、调用迭代器 2、取值d {a: 1, b: 2, c: 3}res d.__iter__()while True:try:print(res.__next__())except StopIteration:breakprint()# 重复执行迭代器会怎样# 在一个迭代器取值取干净的情况下再对其取值取不到# 必须再调用一次迭代器才能取值# 步骤 1、调用迭代器 2、取值res d.__iter__()while True:try:print(res.__next__())except StopIteration:break3、可迭代对象与迭代器对象详解可迭代对象(“可以转换成迭代器的对象”)内置有_ iter _方法 的对象可迭代对象.__iter__() 得到迭代器对象迭代器对象内置有 _ next _ 方法并且内置有 _ iter _方法 的对象迭代器对象.__next__() 得到迭代器的下一个值 迭代器对象.__iter__() 得到迭代器的本身就是调了跟没调用一样 这是为了让 for 幕后统一格式for 循环的工作原理(for循环就是“迭代器循环”)从 d._ iter _() 那里得到一个迭代器对象从 迭代器对象._ next _() 那里拿到一个返回值然后将该返回值赋值给 k循环往复步骤2直到抛出 StopIteration 异常for循环会捕捉异常然后结果循环print(----for----)for k in d:print(k)代码运行结果abcabc----for----abc码字不易如果此文章对你有帮助的话点个赞收个藏给作者一个鼓励。也方便你下次能够快速查找。