• 迭代器与生成器


    1.迭代器

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

    while True:

        print(1)

    l1 = ['a','b','c','d']

    num = 0

    while num < len(l1):

        print(l1[num])

        num += 1

    利用这个程序我们可以借助下标取出列表中的每一个元素,且这个过程就是一个迭代的过程

    2)字典集合这种是没有办法利用下标取值的,因此Python解释器为我们提供了一种不依赖索引的取值方法

    3)有._ _iter_ _()方法的叫做可迭代对象:列表、字符串、集合、字典、元组、文件

           有._ _next_ _()方法和._ _iter_ _()方法的叫做迭代器对象:只有文件

    4)s2 = iter(s1)从可迭代对象变为迭代器对象

    5)

    info1 = iter(info)

    a = 0

    while a < len(info):此处需要些原来的字典,变为迭代器对象后字典没有长度

        print(next(info1))利用next取值

        a += 1

    for data in iter(info):把info可迭代对象变为迭代器对象,并解决异常问题

        print(data)

    2.生成器

    生成器就是迭代器,在函数中出现yield关键字就是生成器

    优点:生成器和列表很像,生成器同一时间只能存储一个值,比列表节省空间

    缺点:只能向后取值,不能向前取值

    return往后的代码将不会被执行

    遇见yield关键字将暂停

    def test():

        yield 1

        yield 2

        yield 3

        yield 4

        yield 5

    res = test()   res为迭代器对象

    print(next(res))

    print(next(res))

    print(next(res))

    def test():

        for i in range(10):

            yield i

    res = test()

    for i in res:

        print(i)

  • 相关阅读:
    分层领域模型
    JAVA集合Set 交集、差集、并集
    http状态码301和302详解及区别
    设计模式(16) 命令模式
    设计模式(15) 解释器模式
    设计模式(14) 模板方法模式
    设计模式(13) 职责链模式
    设计模式(12) 代理模式
    设计模式(11) 享元模式
    设计模式(10) 外观模式
  • 原文地址:https://www.cnblogs.com/Agnostida-Trilobita/p/11053849.html
Copyright © 2020-2023  润新知