python从字典中提取子集的3种方法
2018-05-10 本文已影响0人
孙广宁
- 第一种直接创建字典方式
prices = {
'ACME': 45.2,
'APPLE': 612.2,
'IBM': 205.55,
'HPQ': 37.20,
'FB': 10.75
}
>>> p1 = {key:value for key,value in prices.items() if value>200}
>>> p1
{'APPLE': 612.2, 'IBM': 205.55}
- 第二种使用字典推导式,函数更清晰,效率是第一种的2倍多
>>> p2 = dict((key,value) for key,value in prices.items() if value>200)
>>> p2
{'APPLE': 612.2, 'IBM': 205.55}
*第三种使用key与已知序列求交集,实际上这种方法比第一种效率还要低1.6倍,不提倡使用
>>> tech_names = ['IBM','APPLE']
>>> p3 = {key:prices[key] for key in prices.keys() & tech_names }
>>> p3
{'APPLE': 612.2, 'IBM': 205.55}
- 实现方法还有很多,效率上需要具体分析,如何测试函数效率后续会介绍