一.迭代器 对于Python 列表的 for 循环,他的内部原理:查看下一个元素是否存在,如果存在,则取出,如果不存在,则报异常 StopIteration.(python内部对异常已处理) 使用迭代器一个显而易见的好处就是:每次只从对象中读取一条数据,不会造成内存的过大开销. 比如要逐行读取一个文件的内容,利用readlines()方法,我们可以这么写: for line in open("test.txt").readlines():print line 这样虽然可以工作,但不是最…
# -*- coding:utf-8 -*-'''''''''生成器是一次生成一个值的特殊类型函数.可以将其视为可恢复函数.调用该函数将返回一个可用于生成连续 x 值的生成[Generator],简单的说就是在函数的执行过程中,yield语句会把你需要的值返回给调用生成器的地方,然后退出函数,下一次调用生成器函数的时候又从上次中断的地方开始执行,而生成器内的所有变量参数都会被保存下来供下一次使用.'''def func(readfile): g = open(readfile,encoding=…
#原创,转载请先联系 在学习生成器之前,必须先了解一下迭代器.因为生成器就是一种特殊的迭代器,而且生成器用起来更加优雅. 迭代器的详解可以参考我的另一篇博文:https://www.cnblogs.com/chichung/p/9537969.html 先说一种比较简单的生成器,通过例子慢慢来体会什么是生成器. # 列表生成式 L = [x for x in range(5)] print(L) #简单的生成器 G = (x for x in range(5)) # G就是一个生成器,也是一个迭…
>>>seq = ['one', 'two', 'three'] >>> for i, element in enumerate(seq): ... print i, seq[i] ... 0 one 1 two 2 three >>> enumerate()作用就是对列表进行枚举 求一段文字的位置 #!/usr/bin/env python#todo: get the index of word in the textdef index_yield(…
如何生成斐波那契數列 斐波那契(Fibonacci)數列是一个非常简单的递归数列,除第一个和第二个数外,任意一个数都可由前两个数相加得到.用计算机程序输出斐波那契數列的前 N 个数是一个非常简单的问题,许多初学者都可以轻易写出如下函数: 清单 1. 简单输出斐波那契數列前 N 个数 1 2 3 4 5 6 def fab(max): n, a, b = 0, 0, 1 while n < max: print b a, b = b, a + b …