# 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实现的
python迭代器
最新推荐文章于 2025-03-27 10:24:42 发布