迭代器生成器

Posted liutianyuan

tags:

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

一、迭代器

  迭代的概念:

        迭代是一个重复的过程,每次重复就是一次迭代,并且每次迭代的结果是下一次迭代的初始值  

while  True : # 这只是单纯的重复 并不是迭代
    print("--->")



l = [1,2,3] #迭代
test = 0
while test < len(l):
    print(l[test])
    test+=1

  迭代器协议:

        1、迭代器协议是指: 对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个Stoplteration异常,以终止迭代。

        2、可迭代对象:实现了迭代器协议的对象 (如何实现:对象内部定义一个__iter__()方法)

        3、迭代器对象:可迭代对象执行obj.__iter__()得到的结果就是迭代器对象而迭代器对象指的是即内置有__iter__又内置有__next__方法的对象

          4、注意:迭代器对象一定是可迭代对象,而可迭代对象不一定是迭代器对象

 

二、生成器

什么是生成器:可以理解为一种数据类型,这种数据类型自动实现了迭代器协议(其它数据类型需要调用自己的__iter__()方法),所以生成器就是可迭代对象

生成器分为两种形式:

1、生成器函数:常规函数定义,但是,使用yield语句而不是return语句返回结果

def test():
    yield 1
    yield 2
    yield 3
g=test()
print(‘来自函数‘,g)

  

2、生成器表达式:类似列表推导,但是生成器返回按需产生结果的一个对象,而不是一次架构一个结果列表

laomuji=(‘鸡蛋%s‘ %i for i in range(10)) #生成器表达式
print(laomuji)
print(laomuji.__next__())
print(laomuji.__next__())
print(next(laomuji))#与上面laomuji.__next__()一样

  

 

      

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

python:可迭代对象,迭代器,生成器函数,生成器的解析举例代码说明

python:可迭代对象,迭代器,生成器函数,生成器的解析举例代码说明

10.迭代器/生成器/协程函数/列表生成器

Interator和Generator

Interator和Generator

Interator和Generator