可迭代对象、迭代器对象
可迭代对象Iterable
# 遍历(迭代):一次从对象中把一个个元素取出来的过程。
# 数据类型: str、list、tuple、dict、set等
# 可迭代对象的条件
# 1.对象实现了__iter__()方法
# 2.__iter__()方法返回了迭代器对象
# for 循环工作原理
# 1.先通过__iter__()获取可迭代对象的迭代器
# 2.对获取到的迭代器不断调用__next__()方法获取一个值并将其复制给临时变量i
isinstance():判断一个对象是否是可迭代对象是否是一个已知的数据类型# 导入模块
from collections.abc import Iterable
# # #isinstance(o,t)o:对象,t:类型 可以是直接或者间接类名、基本类型或者元组
print(isinstance(123,Iterable))
print(isinstance('123',Iterable))
迭代器
含义:迭代器是一个可以记住遍历位置的对象,迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。
是一个可以记住遍历位置的对象:在上次停留的位置继续去做一些事情
li = [1,2,3,4,5]
# for i in li:
# print(i)
#iter():获取可迭代对象的迭代器
#next():一个个去取元素,取完元素后会引发一个异常
li=[1,2,3,4, 5]
#1.创建迭代器对象
li2 =iter(li)print (li2)
# # 取下一条数据
print (next (li2))
print (next (li2))
print (next (li2))
print (next (li2))
print (next (li2))
#3.取完元素后,再使用nextO会引发StopIteration异常
# print (next (li2))# 第二种方式
li2 = li.__iter__()
print ("1i2:",li2)