• 生成器函数


    # 生成器的本质就是迭代器
    # 三种创建方法:
    '''
    1.通过生成器函数
    2.通过生成器表达式创建生成器
    3.通过数据转换


    '''

    def func():
    print("我是周杰伦")
    yield "昆凌" # 函数中包含了yield 当前这个函数就不再是普通的函数了,是生成器函数
    print("我是王力宏")
    yield "李云迪"
    print("我是笛卡尔积")
    yield "我是牛顿"
    print("爱因斯坦") # 最后yield之后再进行__next__()函数会报错
    # return 直接返回结果,结束函数的调用
    # yield 返回结果,让函数分段执行

    g = func() # 通过函数func() 来创建一个生成器
    print(g.__next__()) # 周杰伦
    print(g.__next__()) # 王力宏
    print(g.__next__())
    #print(g.__next__())

    注意点:
      函数中包含了yield就是生成器函数
      生成器函数被执行,获取到的是生成器,而不是函数的执行

    取值:
      1.__next__()
      2.send(值)给上一个yield位置传一个值,第一个和组后一个yield不用传值
      3.可以for 循环
      4.转换为列表 list(g)

    各种推导式和生成器表达式
      1.列表推导式 [结果 for 变量 in 可迭代对象 if 筛选]
      2.字典推导式 {结果 for 变量 in 可迭代对象 if 筛选} 结果=>key:value
      3.集合推导式 {结果 for 变量 in 可迭代对象 if 筛选} 结果 key
















  • 相关阅读:
    ZROI2018提高day5t1
    noi.ac day1t1 candy
    ARC102E Stop. Otherwise...
    TOP命令详解(负载情况)
    mysql 时间函数 时间转换函数
    maven编译时错误:无效的目标发行版
    jsp base路径
    mybatis typehandler
    终极解决方案 at org.apache.jsp.index_jsp._jspInit(index_jsp.java:22) 报空指针
    【转】 IntelliJ IDEA像Eclipse一样打开多个项目
  • 原文地址:https://www.cnblogs.com/yb161/p/9832528.html
Copyright © 2020-2023  润新知