我有一个dict,它包含trehold值和一个具有一些尖锐量的dict它并不总是包含来自最小权限字典的所有密钥。
现在我想将实际金额与最小Tresholds进行比较,这是我想到的,但不起作用
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'
有什么想法吗?
您的逻辑有问题。
if actualAmounts[k] == minimumTresholds[k] and actualAmounts[v] < minimumTresholds[v]:
您正在一个具有值的dict中进行查找。actualAmounts[v]将更正错误,因为该值不是该dict中的键。
您可以使用in
关键字检查密钥是否存在于另一个dict中:
for key, value in actualAmounts.items():
if key in minimumTresholds and value < minimumTresholds[key]:
print(key)
这应该有效:
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)