【每日一练】010 如何从列中找到需要的值(009答案公布)

640?wx_fmt=gif

640?wx_fmt=gif


01 010 问题


你有一个数据序列,想利用一些规则从中提取出需要的值或者是缩短序列


02 009答案

题目回顾:

【每日一练】009 构造一个字典,它是另外一个字典的子集(008答案公布)


答案解析:

最简单的方式是使用字典推导。比如:

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: value for key, value in prices.items() if value > 200}# Make a dictionary of tech stockstech_names = {'AAPL', 'IBM', 'HPQ', 'MSFT'}p2 = {key: value for key, value in prices.items() if key in tech_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] for key in prices.keys() & tech_names }

但是,运行时间测试结果显示这种方案大概比第一种方案慢 1.6 倍。 如果对程序运行性能要求比较高的话,需要花点时间去做计时测试。

03 《每日一练》汇总


Python每日一练 001——20190124

Python每日一练 002 ——20190125

Python每日一练 003 --- 经典面试题

【每日一练】005 如何利用Python 删除列表中的重复元素,你有几种实现方法呢?

【每日一练】006 如何查找列表中最大或最小的值(005答案公布)

【每日一练】007 如何计算字符串中子串出现的次数(006答案公布)

【每日一练】008 如何利用Python解决一个古典问题(007答案公布)


04 推荐一个0基础学Python的良心圈


真正的0基础跨进Python大门, 手把手教你学

已有1800+加入圈子,并且学会

圈主是具有多年编码经验的老码农。

具体内容包括:

【基础】0基础入门python,24小时有人快速解答问题;
【提高】40多个项目实战,老手可以从真实场景中学习python;

【每日一练】每日一个实战题目,手把手教你写代码。

【直播】不定期直播项目案例讲解,手把手教你如何分析项目;
【分享】优质python学习资料分享,让你在最短时间获得有价值的学习资源;圈友优质资料或学习分享,会不时给予赞赏支持,希望每个优质圈友既能赚回加入费用,也能快速成长,并享受分享与帮助他人的乐趣。
【人脉】收获一群志同道合的朋友,并且都是python从业者
【价格】本着布道思想,只需 69元 加入一个能保证学习效果的良心圈子。


640?wx_fmt=jpeg


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值