生成器与迭代器

生成器的出现
在我们使用循环时,会有一部分资源用不到,所以我们想要用多少便生成多少,解决资源优化问题
生成器就是一边循环一边计算的工具
上一个推导式就是生成器(yield),而不同就是将语法的中括号换为小括号
在这里插入图片描述

生成器的调用:
1.使用next()函数调用
2.使用_next_()调用
在这里插入图片描述

3.使用定义函数的方法调用(只要函数中有yield,那么就是生成器函数)
在这里插入图片描述
注:需要使用变量来接收(类似于返回值)

迭代:获取元素的一个过程
可迭代对象:简单的来讲就是可以被for循环遍历的对象,如列表、集合、元组、字典、字符串、生成器

如何判断一个对象是否是可迭代的:
使用isinstance()来检查一个对象是不是另一个对象的实例,是,则返回True,不是,就返回False
用法:isinstance(变量名,类型)
在这里插入图片描述可迭代对象≠迭代器

可以被next()函数调用,并返回下一个值的对象称为迭代器(Iterator)
在这里插入图片描述
借助iter()函数将可迭代对象变成迭代器
在这里插入图片描述

iterable可迭代的,在使用是需要调入模块的
在这里插入图片描述

在这里插入图片描述

将指针移到这里,使用alt+回车键,选择collections.Iterable

在这里插入图片描述
生成器与迭代器关系:
1.生成器的出现原因:为优化资源使用问题,节省内存
生成器创建方式:推导式、yield函数
2.迭代器(可以使用next()函数),生成器可以转化为迭代器(生成器也属于迭代器)
3.部分可迭代对象不可以被next()函数调用,但可以通过iter()将其变成迭代器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值