迭代器

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值