zoukankan      html  css  js  c++  java
  • Python的Iterator可以同时打印信息

    Python的Iterator可以同时打印信息

    Updated: May 12, 2020 5:58 PM

    今天看到一个Python Iterator的高级用法,之前并不知道,孤陋寡闻了。

    def my_gen():
       for i in range(10):
           print(f"This is {i}")
           yield i
    
    

    上面这个iterator会在每次循环过程中打印信息,但是返回值依然是i。

    也就是说,

    b = np.linspace(0, 100, num=10)
    a = my_gen()
    for i in a:
        print(b[i])
    

    的输出结果是

    This is 0
    0.0
    This is 1
    11.11111111111111
    This is 2
    22.22222222222222
    This is 3
    33.33333333333333
    This is 4
    44.44444444444444
    This is 5
    55.55555555555556
    This is 6
    66.66666666666666
    This is 7
    77.77777777777777
    This is 8
    88.88888888888889
    This is 9
    100.0
    

    用于indexing的参数依然是yield i中的i,与附加的打印操作无关。这样的iterator特别适合有verbose的情况,可以一般循环一边打印进度。

  • 相关阅读:
    java浅谈
    学习心得 六 修改
    学习心得 六
    学习心得 五
    学习心得 四
    学习java心得 三
    学习java心得 二
    学习java心得 一
    学习前言
    课程进展
  • 原文地址:https://www.cnblogs.com/yaos/p/14014109.html
Copyright © 2011-2022 走看看