首页 > 代码库 > Python之路----------迭代器
Python之路----------迭代器
直接用作于for循环的数据类型有以下几种:
1、集合类的数据类型:list tuple dict set str等
2、生成器generator,包括生成器和带有yiled 的generator function
上面这些可以直接用于for循环的对象统称为可迭代的对象Iterable。
1 #coding=utf-8 2 3 from collections import Iterable 4 5 print(isinstance({}, Iterable)) #True 6 print(isinstance([], Iterable)) #True 7 print(isinstance(‘iterable‘, Iterable)) #True 8 print(isinstance((), Iterable)) #True 9 print(isinstance(100, Iterable)) #False
迭代器:可以被next()调用不断返回下一个值的对象称之为迭代器(Iterator)
1 from collections import Iterator 2 3 print(isinstance({}, Iterator)) #False 4 print(isinstance([], Iterator)) #False 5 print(isinstance(‘iterable‘, Iterator)) #False 6 print(isinstance((), Iterator)) #False 7 print(isinstance((x for x in range(5)), Iterator)) #True 8 9 #上述可知,列表、字典、字符串、元祖等都不属于迭代器(Iterator)
可迭代对象能否变成迭代器呢?通多内置方法iter()可以实现
1 from collections import Iterator 2 3 print(isinstance(iter({}), Iterator)) #True 4 print(isinstance(iter([]), Iterator)) #True 5 print(isinstance(iter(‘iterable‘), Iterator)) #True 6 print(isinstance(iter(()), Iterator)) #True 7 print(isinstance((x for x in range(5)), Iterator)) #True
小结:
1 #Python的For循环本质就是不断通过调用next函数实现的例如下面两段代码 2 3 #代码一 4 5 for x in range(10): 6 print(x) 7 8 #代码二 9 it = iter([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) 10 while True: 11 try: 12 x = next(it) 13 print(x) 14 except StopIteration: 15 break 16 #代码一与代码二等价
Python之路----------迭代器
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。