zoukankan      html  css  js  c++  java
  • 坑集系列

    1. 生成器的惰性机制: 生成器只有在访问的时候才取值. 说白了. 你找他要他才给你值. 找他要. 他是不会执行的.

    def func():
    
      print(111)
    
      yield 222
    
    g = func() # ⽣成器g
    
    g1 = (i for i in g) # 生成器g1. 但是g1的数据来源于g
    
    g2 = (i for i in g1) # ⽣成器g2. 来源g1
    
    print(list(g)) # 获取g中的数据. 这时func()才会被执行. 打印111.获取到222. g完毕.
    
    print(list(g1)) # 获取g1中的数据. g1的数据来源是g. 但是g已经取完了. g1 也就没有数据了
    
    print(list(g2)) # 和g1同理

    深坑==> 生成器. 要值得时候才拿值.

    2

    def add(a, b):
    
      return a + b
    
    def test():
    
      for r_i in range(4):
    
      yield r_i # 0123
    
    g = test()
    
    for n in [2, 10]:
    
      g = (add(n, i) for i in g)
    
    print(list(g))
    
     
    
    #把for循环拆分  对g进行分别命名 比较好理解
    
     
    
    def add(a, b):
    
      return a + b
    
    def test():
    
      for r_i in range(4):
    
      yield r_i # 0123
    
    g = test()
    
    n=2
    
    g = (add(n, i) for i in g)   #生成器惰性机制,只保存代码不运行
    
    n=10
    
    g = (add(n, i) for i in g) # g = (add(n, i) for i in (add(n, i) for i in g))
    print(list(g))#此时才运行
    当你的才华还撑不起你的野心的时候,你就应该静下心来学习; 当你的能力还驾驭不了你的目标时,就应该沉下心来历练。
  • 相关阅读:
    LTE网络注册流程(1)(2)(3)
    Linux 添加用户
    (TOJ2627)台州学院首届新生程序设计竞赛参赛资格
    (TOJ1249)四数相加
    (TOJ1192)A + B Problem II
    (TOJ1065)完美数
    (TOJ1248)Encoding
    (TOJ1051)A × B problem
    (TOJ1506)Sort ZOJ7
    (TOJ1531)爱的伟大意义
  • 原文地址:https://www.cnblogs.com/ellisonzhang/p/10266275.html
Copyright © 2011-2022 走看看