• 补上:第30学习python生成器


    生成器:

    列表解析:res=[i for i in range(10)]————————》生成的是列表,但是数据量大的时候不适用

    生成器表达式:res=(i for i in range(10))—————》自动实现了迭代器协议:有next方法。可以省内存 

    yield生成器:要一个值就拿一个值

    #yield:有保持上一次结果
    def test():
    yield 1# 相当于return
    print("第二个next:")
    yield 2
    print("第三个next:")
    print("加油")
    yield 3
    res=test()
    print(res)#<generator object test at 0x010C32B0>。只是拿到了个生成器
    print(res.__next__())#获取结果是1,next一次结束必须遇到 yield
    print(res.__next__())#获取结果是:第二个next: 和 2
    print(res.__next__())#获取结果是:第三个next: 加油 3



    #母鸡下蛋的故事
    def xiadan():
    ret=[]
    for i in range(100):
    ret.append('鸡蛋%s' %i)
    return ret
    print(xiadan())#缺点:1、这样占空间大,一次性生成100个蛋。2、效率低


    #不用等直接下一个鸡蛋就拿走一个鸡蛋
    def xiadan():
    for i in range(100):
    yield "鸡蛋%s"%i

    jd=xiadan()
    d1=jd.__next__()
    print("第一个拿鸡蛋")
    d2=jd.__next__()
    print("第二个拿鸡蛋")


    #包子的例子:做一笼就出炉卖
    def baozi():
    for i in range(20):
    print("生成包子")
    yield "第一笼包子%s" %i

    res=baozi()
    dyl1=res.__next__()
    dyl2=res.__next__()
  • 相关阅读:
    Flask安装教程
    Django进阶(2)
    反编译源码
    Jmeter之Bean shell使用(一)
    接口测试基础(fiddler、postman的使用、python实现测试接口程序)
    Fiddler显示服务器IP的方法
    web测试与app测试的区别
    互联网产品接入支付功能如何测试?
    web测试中的测试点和测试方法总结
    使用JMeter建立接口测试
  • 原文地址:https://www.cnblogs.com/jianchixuexu/p/11581577.html
Copyright © 2020-2023  润新知