对字典的相应键进行操作

时间:2016-12-04 21:07:08

标签: python dictionary

我有一些大的python词典,可能看起来像:

dict1 = {2015: 5, 2017: 10, 2018; 20}
dict2 = {2015: 35, 2017: 80, 2018; 40}

两个词典都有相同的键。

我想生成以下内容:

dict3 = {2015: 7, 2017: 8, 2018: 2} #dict2 divided by dict1 for corresponding keys

如果没有某种循环键,有没有办法实现上述目标?

2 个答案:

答案 0 :(得分:3)

您可以编写一个简单的字典理解表达式,并迭代任何dict的键:

>>> dict1 = {2015: 5, 2017: 10, 2018: 20}
>>> dict2 = {2015: 35, 2017: 80, 2018: 40}

>>> {key: dict2[key]/dict1[key] for key in dict1}
{2017: 8, 2018: 2, 2015: 7}

答案 1 :(得分:1)

您可以使用 dict comprehension 表达式来实现它。

在Python 3中,将两个int分开,将float返回为:

>>> {k:dict2[k]/dict1[k] for k in dict2}
{2017: 8.0, 2018: 2.0, 2015: 7.0}

要获得int,您必须明确地将其类型化:

>>> {k:int(dict2[k]/dict1[k]) for k in dict2}
{2017: 8, 2018: 2, 2015: 7}

Python 2 中不是这种情况。你可以这样做:

>>> {k:dict2[k]/dict1[k] for k in dict2}
{2017: 8, 2018: 2, 2015: 7}