Python编程:iterator迭代器
2018-01-01 22:42
267 查看
可迭代对象Iterable:
可以直接作用于for循环的对象1、集合数据类型:list,tuple,dict,set,str
2、generator:包括生成器和带yield的生成器函数
迭代器Iterator:
可以被next()函数调用,并不断返回下一个值的对象表示一个数据流,甚至是无穷大的数据流,如全体自然数
惰性计算
from collections import Iterable from collections import Iterator # 可迭代对象 print(isinstance([1,2,3],Iterable)) # True print(isinstance((1,2,3),Iterable)) # True print(isinstance({"one": 1,"two": 2,"three": 3},Iterable)) # True print(isinstance({1,2,3},Iterable)) # True print(isinstance("abc",Iterable)) # True print(isinstance((x for x in range(10)),Iterable)) # True print(isinstance(100,Iterable)) # False # 迭代器 print(isinstance((1,2,3),Iterator)) # False print(isinstance({"one": 1,"two": 2,"three": 3},Iterator)) # False print(isinstance({1,2,3},Iterator)) # False print(isinstance("abc",Iterator)) # False print(isinstance((x for x in range(10)),Iterator)) # True print(isinstance(100,Iterator)) # False # 可迭代对象 --> 迭代器 print(isinstance(iter([1,2,3]),Iterable)) # True print(isinstance(iter((1,2,3)),Iterator)) # True print(isinstance(iter({"one": 1,"two": 2,"three": 3}),Iterator)) # True print(isinstance(iter({1,2,3}),Iterator)) # True print(isinstance(iter("abc"),Iterator)) # True # 例如 lst = [1, 2, 3, 4, 5, 6] it = iter(lst) # 转为Iterator while True: try: print(next(it)) # 通过next方法逐个调用 except StopIteration as e: break """OUT: 1 2 3 4 5 6 """
相关文章推荐
- STL源码剖析 迭代器(iterator)概念与编程技法(三)
- python学习笔记-函数式编程、迭代器和生成器
- Python中Iterator迭代器的使用杂谈
- python-5.生成器Generators和迭代器Iterator
- python 3-1 如何实现可迭代对象iterable和迭代器对象iterator,__iter__,__getitem__
- python的迭代器iterator
- Python笔记-列表生成式、生成器generator(包括斐波拉契数列)、迭代器Iterator
- STL源码分析读书笔记--第三章--迭代器(iterator)概念与traits编程技法
- python-迭代器、生成器、内置函数及面向过程编程
- Python迭代器(Iterator)
- 【Python】迭代器(iterator) vs 生成器(generator)
- python全栈开发-Day11 迭代器、生成器、面向过程编程
- Python基础-高级-迭代器Iterable与迭代器对象Iterator
- python函数式编程之迭代器
- Java 编程思想(第4版)学习笔记(迭代器 Iterator ListIterator 第11章练习11)
- 【Python】在Python中自定义迭代器Iterator
- Python迭代器的使用(Iterator)
- 深入学习python(二) 迭代器(Iterator)和生成器(Generate)
- Python中的迭代器iterator和yield生成器(constructor)