码迷,mamicode.com
首页 > 编程语言 > 详细

Python: 从字典中提取子集--字典推导

时间:2018-01-16 12:12:26      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:运行   运行时   简单   子集   item   python   比较   需要   price   

问题: 构造一个字典,它是另外一个字典的子集

answer: 最简单的方式是使用字典推导

eg1:

1.

>>>prices = {‘ACME‘: 45.23, ‘AAPL‘: 612.78, ‘IBM‘: 205.55, ‘HPQ‘: 37.20, ‘FB‘: 10.75}

>>>p1 = {key: value for key, value in prices.items() if value > 200}

>>>p1

{‘AAPL‘: 612.78,‘IBM‘: 205.55}

2.

字典推导能做到的,通过创建一个元组序列然后把它传给dict() 函数也能实现。比如:
>>>p1 = dict((key, value) for key, value in prices.items() if value > 200)

但是,字典推导方式表意更清晰,并且实际上也会运行的更快些(在这个例子中,实际测试几乎比dcit() 函数方式快整整一倍)。

eg2:

1.

>>>tech_names = {‘AAPL‘, ‘IBM‘, ‘HPQ‘, ‘MSFT‘}

>>>p2 = {key: value for key, value in prices.items() if key in tech_names}

  {‘AAPL‘: 612.78, ‘IBM‘: 205.55, ‘HPQ‘: 37.20}

2.

>>>tech_names = {‘AAPL‘, ‘IBM‘, ‘HPQ‘, ‘MSFT‘}

>>>p2 = { key:prices[key] for key in prices.keys() & tech_names }

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

 

Python: 从字典中提取子集--字典推导

标签:运行   运行时   简单   子集   item   python   比较   需要   price   

原文地址:https://www.cnblogs.com/baxianhua/p/8295594.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!