• Python生成器


    生成器表达式 generator expression

    生成器是迭代器的一种。与解析式的不同是惰性计算、延迟计算

    语法:

    (返回值 for 元素 in 可迭代对象 if 条件)

    使用next()获取生成器的值,每次顺序取一个值,所有值被取完之后再取值就返回None

    应用举例

    var = ("{:x<4}".format(i) for i in range(10) )
    print(var)
    print(next(var))

    运行结果

    <generator object <genexpr> at 0x000001A1C2310F10>
    0xxx

    因为生成器也是迭代器,所以可以遍历

    for x in var:
        print(x)

    运行结果

    1xxx
    2xxx
    3xxx
    4xxx
    5xxx
    6xxx
    7xxx
    8xxx
    9xxx

    因为生成器只能向前,不能往回走,所以会有如下结果:

    var = ("{:x<4}".format(i) for i in range(10) )
    print(var)
    print(next(var))
    
    for x in var:
        print(x)
    
    print('---------------')
    
    for x in var:
        print(x)

    运行结果

    <generator object <genexpr> at 0x000001BA6EA30F10>
    0xxx
    1xxx
    2xxx
    3xxx
    4xxx
    5xxx
    6xxx
    7xxx
    8xxx
    9xxx
    ---------------

    生成器练习

    num=(print('{}'.format(i+1)) for i in range(3))
    num1=next(num)
    num2=next(num)
    sum_num=num1+num2
    print(sum_num)

    运行结果

    1
    2
    Traceback (most recent call last):
      File "C:/Users/ASUS-PC/PycharmProjects/zhanghao/复习/生成器.py", line 13, in <module>
        sum_num=num1+num2
    TypeError: unsupported operand type(s) for +: 'NoneType' and 'NoneType'

    产生上面结果是因为:print函数的返回值是None,所以加不了

  • 相关阅读:
    ADO数据库操作方式
    C++ 连接Oracle
    ADO 动态链接数据库
    C++连接Oracle之OCCI(windows)
    App测试经验分享之登录注册
    使用dpkg时,提示:dpkg:处理软件包XXX时出错
    性能测试指标及常用的监控工具[转]

    JMeter ——Test fragment
    JMeter设置Http代理对web或者app进行录制
  • 原文地址:https://www.cnblogs.com/zh-dream/p/13733330.html
Copyright © 2020-2023  润新知