python迭代器

# python迭代器

# Python中 list,truple,str,dict这些都可以被迭代,但他们并不是迭代器。为什么?
# 因为和迭代器相比有一个很大的不同,list/truple/map/dict这些数据的大小是确定的,
# 也就是说有多少事可知的。但迭代器不是,迭代器不知道要执行多少次,所以可以理解
# 为不知道有多少个元素,每调用一次next(),就会往下走一步,是惰性的。

from collections import Iterator,Iterable
a = [1,2,3,4,5,6,7]#a不是可迭代对象,但是可以迭代
#创建一个迭代器
b = iter(a)#b迭代器a
print(type(b))
print(b)
print(next(b))
print(next(b))

#Iterator判断是不是迭代器,Iteraable判断可不可以迭代
c = isinstance(a,Iterator)#
print(c)
d = isinstance(a,Iterable)#
print(d)
# 凡是可以for循环的,都是Iterable
# 凡是可以next()的,都是Iterator
# 集合数据类型如list,truple,dict,str,都是Itrable不是Iterator,但可以通过iter()函数获得一个Iterator对象
# Python中的for循环就是通过next实现的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值