Python之路----------迭代器
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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之路----------迭代器的主要内容,如果未能解决你的问题,请参考以下文章