python中Iterator与Iterable对象的区别与联系

Iterable对象:

能够直接作用于for循环的对象,统称为可迭代对象,其中包括:字符串,list,tuple,及dict和set

Iterator对象:

无法直接作用于for循环,获取元素的值需要通过next()函数来实现的元素,称为Iterator对象,也称为迭代器

生成器:

生成器不但可以直接作用于for循环,也可以通过next()函数来实现对下一个函数值的调用,生成器都是Iterator对象,但是list,dict,字符串生成的对象,却不是Iterator类型,故需要通过iter()函数将上述对象转换为Iterator对象来实现。

如何判断一个元素是否为Iterator对象?
通过isinstance()函数来实现

isinstance(你要判断的元素集合,Iterator),返回值类型为True 或者 False

eg:

from collections import Iterable,Iterator
list_number=[1,2,3]
isinstance(list_number,Iterable)
length  = len(list_number)
print(length)
#结果应该是True
#生成器不但可以返回作用于for循环,
# 而且可以通过next()函数来实现对下一个元素的调用,直到无法继续调用位置,这个函数有点指针的意思
isinstance(list_number,Iterator)
#生成器都是Iterator对象,但list,dict,str则不是Iterator对象,
# 通过Iter()方法可以实现将Iterable对象转换为Iterator对象
#EG
iter(list_number)
isinstance(iter(list_number),Iterator)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值