Python 迭代器
来源:互联网 发布:python交易策略 编辑:程序博客网 时间:2024/05/22 02:02
对于初次接触迭代器这个名字的人来说,确实是比较难理解的事。本篇博客就来简单地说说迭代器。
相信每个用过python的人都用过下面两句中至少其中一个:
for i in range(n): passorfor i in xrange(n): pass
上面中xrange()就是一个迭代器,range(n)会立即生成一个List(List本身是可迭代的),相当于for i in [0,1,…,n-1],而xrange是在每次循环完成后才产生下一个i值。当n较小的时候,两者没什么区别,当n很大的时候,相比range(),xrange()由于不会提前产生List,可以避免内存的浪费。
接下来我们创建一个迭代器:
class Square: def __init__(self): self.value = 0 def __iter__(self):#__iter__方法返回迭代器 return self def next(self):#迭代器必须有next方法 self.value += 1 return self.value*self.valuesquare = Square()for i in square: print i if(i>10): break
运行结果如下:
14916
解释:
__iter__返回指向了自己,每次循环的时候调用的是next函数,for i in square循环中相当于i = square.next()
0 0
- python迭代器
- python迭代器
- python 迭代器
- Python 迭代器
- Python:迭代器
- python 迭代器
- Python--迭代器
- python迭代器
- python 迭代器
- Python--迭代器
- python迭代器
- Python 迭代器
- Python 迭代器
- [python]迭代器
- python 迭代器
- python 迭代器
- Python 迭代器
- Python 迭代器
- QT下生成可执行程序的方法及一些问题解决办法:
- Gym
- 问题:adb server version (31) doesn't match this client
- PyQt4原始例程--下拉菜单可供选择并打印出来
- 4.28 JEE实习日记
- Python 迭代器
- 霍金GMIC演讲:AI或终结人类文明
- 我的sql效率提升经验+取经
- 图论之Dijkstra
- 技术转型产品学习工具收集与整理——第十天
- [LeetCode]123. Best Time to Buy and Sell Stock III
- Linux:使用libgen.h:basename,dirname
- MXNet
- 编程杂感两篇