阅读背景:

python 迭代器和生成器

来源:互联网 

迭代器:

迭代器:从集合的第一个元素开始访问,到所有的元素都被访问完 ,结束,不能后退,只能往前;
迭代器的优点:不需要准备所有的元素;只有在迭代时才放入迭代器;元素之前或者之后的元素可以不存在或者时被销毁了,这个特点特别适用于遍历一个巨大的或者无限大的集合,如几个G的文件;
vi 需要准备好文件(也就是全部读取到内存里面去,当用vi去打开文件,当用cat则不同,他是通过迭代的形式来查看文件的;(从头往后的)
cat是读一行显示一行;不需要知道中间是什么,可以节省内存,只需关心next的值;

1:无需关心内部结构,仅需通过next()方法获取下一个值
2:布恩那个随机访问集合中的某一个元素;,只能从头开始访问
3:访问到一半是不能后退
4:节省内存,便于循环访问比较大的集合

读文件时不要用:
for i f.readlines 或者是for i in f.read(); 应该直接用for i in f:

生成器:generator
如果一个函数调用时返回的事一个迭代器,这个函数叫做生成器;
yield:
return 是:
def cash_out(amount):
    while(amount >0)
    amount -=1
    return 1
    #yield 1
    print ('you are ok')迭代器:从集合的第一个元素开始访问,到所有的元素都被访问完



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: