1.什么是迭代器?
迭代指的是一个重复的过程,没一次重复都是基于上一次的结果而来的
li =[‘a',’b',‘c',’d',‘e']
li=['a','b','c','d','e']
li='hello'
i=0
while i<len(li):
print(li [ i ] )
i+=1
迭代器指的是迭代取值的工具,该工具的特点是可以不依赖于索引取值
2. 为何要用迭代器
可迭代的对象: 但凡内置有.__iter__方法的对象都称之为可迭代的对象
迭代器的对象:既内置有.__iter__方法,又内置.__next__方法
可迭代的对象:str,list,tuple,dict,set,文件对象
迭代对象:文件对象
可迭代的对象====>迭代对象:调用可迭代对象内置的__iter__方法会有一个返回值,该返回值就是对应的迭代器对象
dic={’x':1,‘y’:2,‘z':3)
iter_dic=dic.__iter__()
print(iter_dic)
res=iter_dic.__next__()
还有一种表达方式:
iter() next()
yield 关键字:只能在函数内
#在函数内但凡包含有yield关键字,在去执行函数,就不会立刻运行函数代码了
#会得到一个返回值,该返回值称之为生成器对象,生成器本质就是迭代器
#总结yield:
1.提供一种自定义迭代器的解决方案
2.yield可用于返回值
yield VS return
相同点:都可以用于返回值
不同点:yield可以暂停,yiedld可以返回多次值,而return只能返回值一次函数就立刻终止
def func()
print(’====第一次‘)
yield 1
print(’====第二次‘)
yield 2
print(’====第三次‘)
yield 3
print(’====第四次‘)
yield 4