在Python中的两个字典中找到具有最小平均值的键?

在以下示例中,我有两个字典。

d1 = {'A' : 1, 'B' : 2,'C' : 9}
d2 = {'A' : 5, 'B' : 1,'C' : 10}

现在,要找到具有最小值的密钥,我只需使用

min_d1 = min(d1, key=d1.get)
min_d2 = min(d2, key=d2.get)

print(min_d1, min_d2) # A B

我的问题是,是否有一种有效的方法可以找到在上述两个字典中具有最小平均值的键,而不必遍历所有 dics 键?例如,在上面的例子中,我希望得到B作为输出。

回答

您可以使用collections.Counter

>>> from collections import Counter
>>> d3 = Counter(d1) + Counter(d2)
>>> min(d3, key=d3.get)
'B'

它使用具有最小平均值的键也将具有最小总和的事实。

如果您想在不导入任何其他内容的情况下执行此操作,您可以执行以下操作:

>>> min(d1, key=lambda k: d1[k] + d2[k])
'B'

尽管它无论如何都会遍历所有键。


以上是在Python中的两个字典中找到具有最小平均值的键?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>