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

Posted 筱筱的春天

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python: 从字典中提取子集--字典推导相关的知识,希望对你有一定的参考价值。

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

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: 从字典中提取子集--字典推导的主要内容,如果未能解决你的问题,请参考以下文章

从字典中提取键值对的子集?

使用PyQt5和BeautifulSoup将JavaScript变量提取到Python字典中

python-使用字典推导式把cookie从字符串转换成字典

python基础列表推导式&字典推导式&集合推导式

python的列表推导式字典推导式集合推导式

按名称从字典中提取数据框