我有一些大的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
如果没有某种循环键,有没有办法实现上述目标?
答案 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}