-2

我有两个字典,如下所示:

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

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

字典可以有无限数量的键,也许 10k,每个键都是唯一的正数。我需要三个单独的函数,它们将返回一个键:

func1 ) 第二个值位置之间的最大差异,即上面示例中的键 3 19-4=15。

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

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

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

4

1 回答 1

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]
于 2013-10-21T19:55:20.820 回答