迭代器

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

原文地址:https://www.cnblogs.com/frank007/p/9720311.html