python函数-迭代器&生成器 一.迭代器 1 可迭代协议 迭代:就是类似for循环,将某个数据集内的数据可以“一个挨着一个取出来” 可迭代协议: ① 协议内容:内部实现__iter__方法 ② 验证方法:dir()方法.通过dir()方法查看是否含有__iter__方法 ③ __iter__方法的作用:可迭代的数据类型执行__iter__方法后会生成一个迭代器对象 print([1,2].__iter__()) 结果 <list_iterator object at 0x1024784a…
迭代器 任何一个类,只要其实现了__iter__方法,就算是一个可迭代对象.可迭代对象的__iter__方法返回的对象是迭代器,迭代器类需要实现next方法.一般来说,实现了__iter__方法的类肯定还会顺便实现next方法,也就是说这个类既是一个可迭代对象也是个迭代器. 一个迭代器ite可用ite.next()方法来返回其定义好的以某种算法找到的下一个元素,内建的iter(...)函数可把可迭代对象转化为迭代器.最常见的利用可迭代对象和迭代器的就是for语句了: for item in it…
#!/usr/bin/env python# -*- coding: utf-8 -*-#1.迭代器&生成器#生成器#正确的方法是使用for循环,因为generator也是可迭代对象:g = (x*x for x in range(10))for n in g: print(n)#斐波拉契数列(Fibonacci),除第一个和第二个数外,任意一个数都可由前两个数相加得到:#1, 1, 2, 3, 5, 8, 13, 21, 34, ...#斐波拉契数列用列表生成式写不出来,但是,用函数把它打印出…