• Day4_生成器_三元表达式_列表解析_生成器表达式


    生成器:在函数内部包含yield关键,那么该函数执行的结果就是生成器。

      生成器就是迭代器。

    def func():
        print('first')
        yield 111111
        print('second')
        yield 222222
        print('third')
        yield 333333
    g=func()
    

     yield的功能:

    1,把函数结果做成生迭代器(以一种优雅的方式封装好_iter_)

    2,函数暂停与在继续运行的状态是由yield来保存的

    yield和return的比较??

    相同:都有返回值的功能

    不同:return只能返回一次值,而yield可以返回多次值

    23:13

    三元表达式:

    正常的语法写一个if判断:

    def foo():
        if x > 3:
            return 'ok'
        else:
            return 'no'
    

     三元表达式的写法是:

      条件成立的结果放在左边,中间写判断条件,右边写不成立的条件

    x=10
    res ='ok' if x > 3 else 'no'

    列表解析:

    可以讲for循环直接写到列表中,例如:写了一个向空列表添加值的功能:

    l=[]
    for i in range(10):
        l.append('egg%s' %i)
    
    print (l)
    

     列表解析就是将for循环需要执行的写在列表左边,执行条件写在右边。

    l=[]
    l=['egg%s %i' %i for i in range(10) if i >= 5 ]
    print(l)
    

     如果for循环有条件的话:

      需要加到for循环的后边。

    应用:

    比如说将列表里的值全都变成平方:

    numb=[1,2,3,4,5]
    num_new=[items**2 for item in nums if item > 3]
    print (nums_new)
    

    列表是将列表的值全部加载出来,会很耗内存,我们可以利用()来解决。

    num_new=(items**2 for item in nums if item > 3)

    print(num_new)

    print(next(g))

    print(next(g))

  • 相关阅读:
    SpringBoot之SpringApplication
    IP数据库
    Android长按及拖动事件探究
    5.7之sql_model
    Linux 信号介绍
    设计模式详解及PHP实现:代理模式
    为你的AliOS Things应用增加自定义cli命令
    DRDS SQL 审计与分析——全面洞察 SQL 之利器
    下一代大数据处理引擎,阿里云实时计算独享模式重磅发布
    2135亿背后的双11项目协作怎么玩?
  • 原文地址:https://www.cnblogs.com/sexiaoshuai/p/7264263.html
Copyright © 2020-2023  润新知