Python_迭代器和生成器的复习_38

Posted LXL_1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python_迭代器和生成器的复习_38相关的知识,希望对你有一定的参考价值。

 迭代器和生成器

迭代器:

双下方法:很少直接调用的方法,一般情况下,是通过其他方法触发的

可迭代的协议——可迭代协议 含有__iter__ 的方法 (‘__iter__‘ in dir(数据))

可迭代的一定可以被for循环

迭代器协议:含有 __iter__ 和 __next__ 方法

 

迭代器一定可以迭代, 可迭代的通过调用 __iter__() 方法就能得到一个迭代器

迭代器的特点:

  很方便的使用,一个迭代器只能从前往后,取一次

  节省内存空间

  

生成器:

生成器的本质就是迭代器

生成器的表现形式

  生成器函数

  生成器表达式

 

生成器函数:

  含有yield关键字的函数就是生成器

  特点:

    调用函数之后函数不执行,返回一个生成器

    每次调用next方法的时候回取到一个值

    直到取完最后一个,再执行next的话就会报错

 

写生成器实现:有一个文件,从文件里分段读取内容

readline

read(10)

在读出来的内容前面加上一个  ‘***‘,再返回给调用者

 

def generator():
    for i in range(20):
        yield 哇哈哈%s%i

g = generator()  #调用生成器函数得到一个生成器
print(list(g))   #数据类型的强制装换 生成器转化为列表
#ret = g.__next__() #每一次执行g.__next__就是从生成器中取值,预示着生成器函数中的代码继续执行 #print(ret) g1 = generator() num = 0 for i in g1: num += 1 if num > 50: break print(i) # 从生成器中取值的几个方法 # next # for # 数据类型的强制转换 : 占用内存

 

 

# 从生成器中取值的几个方法
# next
# for
# 数据类型的强制转换 : 占用内存

  

以上是关于Python_迭代器和生成器的复习_38的主要内容,如果未能解决你的问题,请参考以下文章

python之迭代器和生成器

python编程系列---可迭代对象,迭代器和生成器详解

python----------迭代器和生成器

python迭代器和生成器

python基础13-迭代器和生成器

Python 初始—(迭代器和生成器)