python的迭代器、可迭代对象、生成器

一、三者的简要关系图

在这里插入图片描述

  • 可迭代对象不一定是迭代器,但迭代器一定是可迭代对象
  • 定义可迭代对象,必须实现__iter__方法;定义迭代器,必须实现__iter__和__next__方法

二、迭代器

1、定义
迭代器是一个可以记住遍历位置的对象

2、特点
边用边生成,不再依赖一个现存的数据集合来存放数据,节省了大量内存空间。

三、生成器

1、定义
使用了yield关键字的函数被称为生成器。

2、注意

  • 生成器是函数,且返回的是迭代器。即python的生成器是一个返回迭代器的函数。其中yield与return都是用来返回函数的“值”。区别在于return返回后,函数终止;而yield会保存当前函数的执行状态,在返回后,函数又回到之前保存的状态继续执行。
  • 生成器函数包含一个或者多个yield,即可以当遇到一个yield返回后从当前位置继续执行yield。

例如:
在这里插入图片描述
在这里插入图片描述
都是输出:
在这里插入图片描述

参考博文:
1、https://blog.csdn.net/jinixin/article/details/72232604
2、https://blog.csdn.net/qq_45807032/article/details/105219674

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值