010 如何从列中找到需要的值

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元 加入一个能保证学习效果的良心圈子。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190218G07JA700?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券