迭代
1.1 迭代的概念
使用for循环遍历取值的过程叫做迭代,比如:使用for循环遍历列表获取值的过程
1.2 可迭代对象
标准概念:在类里面定义方法,并使用该类创建的对象就是可迭代对象
简单记忆:使用for循环遍历取值的对象叫做可迭代对象, 比如:列表、元组、字典、集合、range、字符串
1.3 判断对象是否是可迭代对象
1.4 自定义可迭代对象
在类中实现方法
自定义可迭代类型代码
执行结果:
通过执行结果可以看出来,遍历可迭代对象依次获取数据需要迭代器
总结
在类里面提供一个创建的对象是可迭代对象,可迭代对象是需要迭代器完成数据迭代的
2、迭代器
2.1 自定义迭代器对象
自定义迭代器对象: 在类里面定义和方法创建的对象就是迭代器对象
运行结果:
-
2.2 iter()函数与next()函数
-
获取可迭代对象的迭代器,会调用可迭代对象身上的方法
-
获取迭代器中下一个值,会调用迭代器对象身上的方法
2.3 for循环的本质
遍历的是可迭代对象
for item in Iterable 循环的本质就是先通过iter()函数获取可迭代对象Iterable的迭代器,然后对获取到的迭代器不断调用next()方法来获取下一个值并将其赋值给item,当遇到StopIteration的异常后循环结束。
遍历的是迭代器
for item in Iterator 循环的迭代器,不断调用next()方法来获取下一个值并将其赋值给item,当遇到StopIteration的异常后循环结束。