zoukankan      html  css  js  c++  java
  • python_生成器

    生成器:

    # 生成器函数(内部是否包含yield)
    def func():
        print('F1')
        yield 1
        print('F2')
        yield 2
        print('F3')
        yield 100
        print('F4')
    # 函数内部代码不会执行,返回一个 生成器对象。
    v1 = func()
    # 生成器是可以被for循环,一旦开始循环那么函数内部代码就会开始执行。
    for item in v1:
        print(item)

    总结:函数中如果存在yield,那么该函数就是生成器函数,调用生成器函数会返回一个生成器,生成器只有被for循环时,生成器函数内部的代码才会执行,每次循环都会获取yield返回的值。

    yield from:

    def base():
        yield 88
        yield 99
    
    def func():
        yield 1
        yield 2
        # 跳到上面的base函数
        yield from base()
        yield 3
    
    result = func()
    for item in result:
        print(item)

     生成器推导式:

    v1 = (i for i in range(10)) #生成器推导式,创建了一个生成器,内部循环未执行。
    for i in v1:
        print(i)
  • 相关阅读:
    浅谈Huffman树
    CF884D:Boxes And Balls
    MySQL单表查询(重要)
    MySQL字段完整性约束(重要)
    MySQL数据类型(重要)
    数据库基本操作
    MySQL权限管理
    MySQL存储引擎概述
    数据库基础
    并发编程小结
  • 原文地址:https://www.cnblogs.com/wangdianchao/p/11637637.html
Copyright © 2011-2022 走看看