python字典搜索,比较和计算值

时间:2013-10-21 19:42:29

标签: python python-2.7 dictionary

我有两个词典如下:

dict1 = {1: (7, 5), 2: (5, 9), 3: (3, 4)}

dict2 = {1: (9, 12), 2: (6, 11), 3: (7, 19)}

字典可以拥有无​​限数量的密钥,可能是10k,每个密钥都是唯一的正数。我需要三个独立的函数,它们将返回一个键:

func1)第二个值位置之间的最大差异,在19-4 = 15的例子中是键3。

func2)第一个值位置之间的最大差异,在7-3 = 4的示例中也是键3。

func3)作为键值之和的最大差异,这又是键3,因为(7 + 19) - (3 + 4)= 19

两个词典都具有相同的键,而dict2可以具有相同或更高的值。如果函数找到多个具有相同结果的键,它将返回更高的键。

1 个答案:

答案 0 :(得分:1)

如同单个遍历词典一样简单。如果它们具有相同的键,则可以迭代超过1个字典。

def func(d1, d2):
    m = (0, 0)
    for k in d1:
        res = abs(d1[k][1] - d2[k][1]) #func1
        #res = abs(d1[k][0] - d2[k][0]) # func2
        #res = abs(sum(d1[k]) - sum(d2[k])) # func3
        if res > m[1]: m = (k, res)
    return m[0]