首页 > 其他 > 详细

迭代器基础

时间:2019-11-15 23:11:41      阅读:78      评论:0      收藏:0      [点我收藏+]
#生成器都是迭代器 ,迭代器不一定是生成器
#list,tuple,sict,string:Iterable(可迭代对象)
#什么是迭代器?
#满足两个条件:1有iter方法 2有next方法
a = [1,2,3,4,]
b= a.__iter__()
print(b) #<list_iterator object at 0x000000000270B4C8>
print(next(b))
print(next(b))
print(next(b))
print(next(b))
#print(next(b)) #StopIteration
# for循环做的:
# 1 调用可迭代对象的iter方法返回一个迭代器对象
# 2 不断调用迭代器对象next方法
# 3 处理 StopIteration
for i in [1,2,3,4]: #不能直接对这个列表使用next方法
# iter([1,2,3,4]) #加了iter就可以了
print(i)
from collections import Iterable,Iterator #
print(isinstance(a,list)) #True 判断a 是不是列表
print(isinstance(a,Iterable)) #True 判断a是不是可迭代对象
print(isinstance(a,Iterator)) #False 判断a是不是迭代器
print(isinstance(b,Iterator)) # True 判断a 是不是迭代器

这是网上找的迭代器和生成器关系图

技术分享图片

 

 

迭代器基础

原文:https://www.cnblogs.com/CIBud/p/11869837.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!