Python 迭代器
来源:互联网 发布:中科院物理所考研知乎 编辑:程序博客网 时间:2024/05/22 00:40
迭代器规则:
迭代的意思是重复做一些事情很多次,就像在循环中那样。一般只在for循环中对序列和字典进行迭代,但实际也可以对其它对象进行迭代,只要对象实现了__iter__方法即可。
__iter__方法会返回一个迭代器(iterator),所谓的迭代器就是具有__next__方法(这个方法在调用时不需要任何参数)的对象。在调用next方法时,迭代器就会返回它的下一个值,直到返回一个StopIteration异常。
一个实现了__iter__方法的对象是可迭代的,一个实现了__next__方法的对象则是迭代器。
示例1: 输出100以内的斐波那契数列
class Fib100: def __init__(self): self._1 , self._2 = 0,1 def __iter__(self): return self def __next__(self): self._1 , self._2 = self._2, self._1 + self._2 if self._1 > 100: raise StopIteration() return self._1if __name__ == '__main__': for i in Fib100(): print(i)
迭代器的调用顺序:
示例2: 迭代查找1000以内的数素
class Prime1000(object): def __init__(self): self.Prime,self.Len = self.FindAllPrime(1000) self.count = -1 def __iter__(self): print('call __iter__') return self def __next__(self): self.count+=1 if self.count>=self.Len: raise StopIteration() return self.Prime[self.count] def FindAllPrime(self,n): result = list(range(n)) output = [] cnt = 0 upper = round(pow(n,0.5))+1 for i in range(2,upper): j = i * i while(j<n): result[j] = 0 j += i result[1] = 0 for i in range(n): if result[i]!=0: cnt+=1 output.append(i) return output,cntif __name__ == '__main__': for i in Prime1000(): print(i)
阅读全文
0 0
- python迭代器
- python迭代器
- python 迭代器
- Python 迭代器
- Python:迭代器
- python 迭代器
- Python--迭代器
- python迭代器
- python 迭代器
- Python--迭代器
- python迭代器
- Python 迭代器
- Python 迭代器
- [python]迭代器
- python 迭代器
- python 迭代器
- Python 迭代器
- Python 迭代器
- PHPforeach()跳出本次或当前循环与终止循环方法
- 单道进程
- 常用html标签复习
- 机器学习中的k-means聚类及其Python实例
- frame与iframe的用法与区别
- Python 迭代器
- Tensorflow中怎么使用queue读取数据的情况下,在同一个session中边训练边测试
- 启动mysql的两种方式
- iOS:在界面显示gif动画图片
- 二分查找法
- 艾氏筛法搜索素数
- 枚举-OpenJudge-8469-特殊密码锁
- Unity 中禁止屏幕休眠
- C# 排列组合