今天看到对python迭代器与生成器的两个例子,甚好!
来源:互联网 发布:如何注册网络写手 编辑:程序博客网 时间:2024/05/16 18:28
迭代器: 有next与__iter__方法的对象:
#!/usr/bin/env python #coding=utf-8 class Fib: def __init__(self): self.a,self.b = 0,1 def next(self): self.a,self.b = self.b,self.a+self.b return self.a def __iter__(self): return self
生成器: 使用yield返回值的函数:
#!/usr/bin/env python #coding=utf-8 def fib(): a,b = 0,1 while True: a,b = b,a+b yield a
两个都能很优雅的输出费布拉切数列。 好处是值都是返回的时候才生成, 不会弄一个庞大的列表占内存。
执行方式分别为:
迭代器:
fibs = Fib() for f in fibs: if f < 10000: print f else: break
for f in fib(): if f < 10000: print f else: break
迭代器应用场景:
将遍历和取值的过程封装到next内部, 只返回一个可迭代对象。
生成器应用场景:
所有返回顺序可遍历对象(列表,元组,集合...)的函数,且该返回只做单次遍历业务用, 都适合用生成器来改写,少用很多内存。
0 0
- 今天看到对python迭代器与生成器的两个例子,甚好!
- 今天看到的一些好文章链接
- python的迭代器与生成器
- 今天看到的一片好文章,对学生很有启发
- 今天看到的几个软件工程与项目管理有关的几个好站
- 对Python生成器的理解
- python 迭代器与生成器
- python迭代器与生成器
- python 迭代器与生成器
- Python:迭代器与生成器
- python迭代器与生成器
- Python迭代器与生成器
- Python 迭代器与生成器
- python迭代器与生成器
- python 迭代器与生成器
- Python生成器与迭代器
- [Python] 生成器与迭代器的异同
- Python生成器与迭代器的总结
- SQL NULL 函数
- 中国梦,我的梦
- Programming With the Java XML Digital Signature API
- SQL 数据类型
- 解决声音出现卡顿、停顿的方法
- 今天看到对python迭代器与生成器的两个例子,甚好!
- 页面实时刷新技术探讨
- Hibernate-Session
- java null 和 “”的区别
- SQL 服务器 - RDBMS
- SQL语言一些笔记(主要是Sqlite部分)
- android 权限大全
- POJ 2121 Inglish-Number Translator
- 完全卸载oracle11g步骤