zoukankan      html  css  js  c++  java
  • 第七节 -- 生成器与迭代器

    生成器:

    • 在 Python 中,使用了 yield 的函数被称为生成器(generator)。
    • 跟普通函数不同的是,生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个迭代器。
    • 在调用生成器运行的过程中,每次遇到 yield 时函数会暂停并保存当前所有的运行信息,返回yield的值。并在下一次执行 next()方法时从当前位置继续运行。
    • 在python2中,range=list,xrange=生成器;但是在python3中,range=生成器,xrange没有

    迭代器

    • 迭代是Python最强大的功能之一,是访问集合元素的一种方式。。
    • 迭代器是一个可以记住遍历的位置的对象。
    • 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。
    • 迭代器有两个基本的方法:iter() 和 next()
    • 字符串,列表或元组对象都可用于创建迭代器:
    >>>list=[1,2,3,4]
    >>> it = iter(list)    # 创建迭代器对象
    >>> print (next(it))   # 输出迭代器的下一个元素
    1
    >>> print (next(it))
    2
    >>>
    View Code
    list=[1,2,3,4]
    it = iter(list)    # 创建迭代器对象
    for x in it:
        print (x, end=" ")
    View Code

    yleld vs return

    return 返回并中止function

    yield 返回数据,并冻结当前执行过程

    next 唤醒冻结的函数执行过程,继续执行,直到遇到下一个yield

    函数有了yield之后:

    函数名加()就变成了生成器

    return在生成器里,代表生成器的中止,直接报错

  • 相关阅读:
    nginx配置虚拟主机
    nginx 中http协议的相关配置
    nginx的性能优化
    编译安装NGINX-1.21.0
    nginx命令使用
    编译安装NGINX1.16.1
    nginx: [emerg] getpwnam("nginx") failed
    swift选择类或结构体
    工具与网址
    WARNING: CPU: 0 PID: 1 at ./arch/x86/include/asm/fpu/internal.h:373
  • 原文地址:https://www.cnblogs.com/moncherk/p/8377334.html
Copyright © 2011-2022 走看看