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 《每日一练》汇总
【每日一练】005 如何利用Python 删除列表中的重复元素,你有几种实现方法呢?
【每日一练】006 如何查找列表中最大或最小的值(005答案公布)
【每日一练】007 如何计算字符串中子串出现的次数(006答案公布)
【每日一练】008 如何利用Python解决一个古典问题(007答案公布)
04 推荐一个0基础学Python的良心圈
真正的0基础跨进Python大门, 手把手教你学
已有1800+加入圈子,并且学会
圈主是具有多年编码经验的老码农。
具体内容包括:
【基础】0基础入门python,24小时有人快速解答问题;
【提高】40多个项目实战,老手可以从真实场景中学习python;
【每日一练】每日一个实战题目,手把手教你写代码。
【直播】不定期直播项目案例讲解,手把手教你如何分析项目;
【分享】优质python学习资料分享,让你在最短时间获得有价值的学习资源;圈友优质资料或学习分享,会不时给予赞赏支持,希望每个优质圈友既能赚回加入费用,也能快速成长,并享受分享与帮助他人的乐趣。
【人脉】收获一群志同道合的朋友,并且都是python从业者
【价格】本着布道思想,只需 69元 加入一个能保证学习效果的良心圈子。