我有两个词典如下:
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可以具有相同或更高的值。如果函数找到多个具有相同结果的键,它将返回更高的键。
答案 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]