如何在python中打印列表理解的进度?

如何在python中打印列表理解的进度?,第1张

如何在python中打印列表理解的进度? 1:使用辅助功能
def report(index):    if index % 1000 == 0:        print(index)def process(token, index, report=None):    if report:        report(index)     return token['text']l1 = [{'text': k} for k in range(5000)]l2 = [process(token, i, report) for i, token in enumerate(l1)]
2:使用
and
or
声明
def process(token):    return token['text']l1 = [{'text': k} for k in range(5000)]l2 = [(i % 1000 == 0 and print(i)) or process(token) for i, token in enumerate(l1)]
3:同时使用
def process(token):    return token['text']def report(i):    i % 1000 == 0 and print(i)l1 = [{'text': k} for k in range(5000)]l2 = [report(i) or process(token) for i, token in enumerate(l1)]

所有3种方法均可打印:

01000200030004000

2如何运作

  • i % 1000 == 0 and print(i)
    and
    只检查了第二份声明,如果第一个是
    True
    因此只有当打印
    i % 1000 == 0
  • or process(token)
    or
    始终检查两个语句,但返回第一个值
    True
    • 如果
      i % 1000 != 0
      False
      ,则将第一个语句
      process(token)
      添加到列表中。
    • 否则,第一个语句是
      None
      (因为
      print
      return
      None
      ),同样,该
      or
      语句添加
      process(token)
      到列表中

3如何运作

与2类似,因为

report(i)
没有
return
任何作用,它等于
None
or
添加
process(token)
到列表中



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5650624.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存