You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何高效查找两个字典中平均值最小的键(无需遍历全键)

解决方案

平均值的大小和两个字典对应值的和的大小完全正相关(除以2是固定系数,不影响排序结果),你可以直接用Python内置的min()函数实现,不需要手动写遍历逻辑,底层由C实现的遍历效率远高于Python层面的手动循环:

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

# 两个字典键完全一致时直接使用
min_key = min(d1, key=lambda k: d1[k] + d2[k])
print(min_key) # 示例输出为B

如果两个字典的键可能存在差异,仅统计共同存在的键,可以先取键的交集再计算:

common_keys = d1.keys() & d2.keys()
min_key = min(common_keys, key=lambda k: d1[k] + d2[k])

关于无需遍历所有键的说明

如果你的需求是完全不遍历所有键就能得到结果,只有提前维护额外数据结构才能实现:比如提前为两个字典分别维护按值升序的最小堆,你可以通过双指针比对堆顶元素的方式,在O(1)~O(log n)的时间复杂度内得到结果,不需要遍历全量键。
如果是普通的Python字典结构,必须遍历所有键才能确定最小和对应的键,但内置min的性能已经足够应对绝大多数业务场景,不需要手动实现遍历逻辑。

内容的提问来源于stack exchange,提问作者armin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 09:39:03