栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在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)
到列表中



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/648429.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号