Python学习笔记 迭代器
2015-03-21 21:13
288 查看
Python学习笔记 迭代器
iter和next:iter方法可以生成一个迭代器,用next取得下一个元素,当next超过范围后,会出现异常
如:
>>> string = "cxy" >>> it = iter(string) >>> next(it) 'c' >>> next(it) 'x' >>> next(it) 'y' >>> next(it) Traceback (most recent call last): File "<pyshell#18>", line 1, in <module> next(it) StopIteration
一个不会出异常的方法:
>>> while True: try: each = next(it) except StopIteration: break print(each) c x y >>>
一个斐波那契数列的迭代器的实现:
>>> class Fibs: def __init__(self): self.a = 0 self.b = 1 def __iter__(self): return self def __next__(self): self.a, self.b = self.b, self.a + self.b return self.a >>> fibs = Fibs() >>> for each in fibs: if each < 20: print(each) else: break 1 1 2 3 5 8 13 >>>
改进版,一个带迭代上限的迭代器:
>>> class Fibs: def __init__(self, n = 10): self.a = 0 self.b = 1 self.n = n def __iter__(self): return self def __next__(self): self.a, self.b = self.b, self.a + self.b if self.a > self.n: raise StopIteration return self.a >>> fibs = Fibs() >>> for each in fibs: print(each) 1 1 2 3 5 8
使用自定义的上限
>>> fibs = Fibs(100) >>> for each in fibs: print(each) 1 1 2 3 5 8 13 21 34 55 89 >>>
相关文章推荐
- python 学习笔记(8)高级迭代器
- python基础教程_学习笔记11:魔法方法、属性和迭代器
- Python 学习笔记 迭代器和生成器
- Python学习笔记010_迭代器_生成器
- python学习手册笔记--第14.20章--迭代器和解析
- python学习笔记-函数式编程、迭代器和生成器
- python学习笔记4.2-python高级之迭代器
- python学习笔记-迭代器
- Python学习笔记(10)-生成器generator和迭代器Iterator
- 迭代器和解析——Python(学习笔记)
- python学习笔记9-迭代器和生成器整理
- python学习笔记四 迭代器,生成器,装饰器(基础篇)
- Python学习笔记 - 迭代器Iterator
- 【Python学习笔记】python高级特性:迭代器
- Python学习笔记 - 迭代器Iterator
- Python学习笔记-Day03 -第三部分(迭代器和生成简介)
- Python基础教程 第9章: 魔法方法、属性和迭代器 学习笔记
- Python学习笔记--迭代器&生成器
- python学习笔记(5)--迭代器,生成器,装饰器,常用模块,序列化
- Python学习笔记——迭代器(RandSeq和AnyIter)