1 010 问题
你有一个数据序列,想利用一些规则从中提取出需要的值或者是缩短序列
02009答案
答案解析:
最简单的方式是使用字典推导。比如:
prices={'ACME':45.23,'AAPL':612.78,'IBM':205.55,'HPQ':37.20,'FB':10.75}# Make a dictionary of all prices over 200p1={key:valueforkey,valueinprices.items()ifvalue>200}# Make a dictionary of tech stockstech_names={'AAPL','IBM','HPQ','MSFT'}p2={key:valueforkey,valueinprices.items()ifkeyintech_names}
讨论
大多数情况下字典推导能做到的,通过创建一个元组序列然后把它传给 dict() 函数也能实现。比如:
p1 = dict((key, value) for key, value in prices.items() if value > 200)
但是,字典推导方式表意更清晰,并且实际上也会运行的更快些 (在这个例子中,实际测试几乎比 dict() 函数方式快整整一倍)。
有时候完成同一件事会有多种方式。比如,第二个例子程序也可以像这样重写:
# Make a dictionary of tech stockstech_names={'AAPL','IBM','HPQ','MSFT'}p2={key:prices[key]forkeyinprices.keys()&tech_names}
但是,运行时间测试结果显示这种方案大概比第一种方案慢 1.6 倍。 如果对程序运行性能要求比较高的话,需要花点时间去做计时测试。
03《每日一练》汇总
04推荐一个0基础学Python的良心圈
真正的0基础跨进Python大门, 手把手教你学
已有1800+加入圈子,并且学会
圈主是具有多年编码经验的老码农。
具体内容包括:
【基础】0基础入门python,24小时有人快速解答问题;
【提高】40多个项目实战,老手可以从真实场景中学习python;
【每日一练】每日一个实战题目,手把手教你写代码。
【直播】不定期直播项目案例讲解,手把手教你如何分析项目;
【分享】优质python学习资料分享,让你在最短时间获得有价值的学习资源;圈友优质资料或学习分享,会不时给予赞赏支持,希望每个优质圈友既能赚回加入费用,也能快速成长,并享受分享与帮助他人的乐趣。
【人脉】收获一群志同道合的朋友,并且都是python从业者
【价格】本着布道思想,只需 69元 加入一个能保证学习效果的良心圈子。
领取专属 10元无门槛券
私享最新 技术干货