zoukankan      html  css  js  c++  java
  • 生成器函数的进阶和表达式and各种推导式

    生成器函数的进阶

    send的效果与作用范围和next一模一

    send获取下一个值的效果和next基本一致

    第一次不能用send

    函数中的最后一个yield不能接收新的值

    只是再获取下一个值的时候,给上一个yield的位置传递一个数据

    使用send的注意事项

      #第一次使用生成器的时候,是用next获取下一个值

      #最后一个yield不能接收外部的值

    def generator():
        print(123)
        content = yield 1
        print('=======',content)
        print(456)
        arg = yield 2
        ''''''
        yield
    # g1 = generator()
    # g2 = generator()
    # g1.__next__()
    # g2.__next__()
    # print('********',generator().__next__())
    # print('********',generator().__next__())
    g = generator()
    ret = g.__next__()
    print('***',ret)
    ret = g.send('hello')
    print('***',ret)

    各种推导式

    egg_list=['鸡蛋%d'%i for i in range(10)]
    print(egg_list)
    g = (i for i in range(10))
    print(g)        #生成器的内存地址
    for i in g:
        print(i)
    
        #与列表生成器的区别:括号不一样,返回的值=======几乎不占内存

    各种推导式

      [满足条件的元素相关的操作  for   元素   in     可迭代的数据类型     if    元素相关的条件]

    生成器注意

    1》生成器中的数据只能取一次,取完就没了。

    2》惰性运算。

  • 相关阅读:
    一般处理程序页ashx 序列化 Json数组
    SQL server 分页
    MySQL 分页
    获取网站的BaseURL
    java学习书籍推荐
    查询并关闭指定端口进程
    ettercap使用
    MS10-046漏洞利用
    MS12-020漏洞利用
    入侵安卓手机
  • 原文地址:https://www.cnblogs.com/qinghuani/p/8184240.html
Copyright © 2011-2022 走看看