将字典值与其他字典进行比较

Compare dict value with other dict

我有一个包含阈值的字典和一个包含一些实际数量的字典。 它并不总是包含最小阈值字典中的所有键。

现在我想比较 actualAmounts 和 minimumTresholds,这是我想出的,但这不起作用

minimumTresholds = {'key 1' : 100, 'key 2' : 100, 'key 3' : 1000}
actualAmounts = {'key 1' : 237, 'key 3' : 903}

for k, v in actualAmounts.items():
    if actualAmounts[k] == minimumTresholds[k] and actualAmounts[v] < minimumTresholds[v]:
         print(actualAmounts[k])

预期结果为:

'key 3'

有什么想法吗?

这应该有效:

minimumTresholds = {'key 1' : 100, 'key 2' : 100, 'key 3' : 1000}
actualAmounts = {'key 1' : 237, 'key 3' : 903}

for i in actualAmounts.keys() :
    if i in minimumTresholds.keys() and actualAmounts[i] < minimumTresholds[i] :
        print(i)
    

你的逻辑有问题

if actualAmounts[k] == minimumTresholds[k] and actualAmounts[v] < minimumTresholds[v]: 您正在使用一个值在 dict 中进行查找。 actualAmounts[v] 将抛出一个错误,因为该值不是该字典中的键。

您可以使用 in 关键字检查密钥是否存在于另一个字典中:

for key, value in actualAmounts.items():
    if key in minimumTresholds and value < minimumTresholds[key]:
        print(key)