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

如何实现字典值相等选元素更少的元组键,不等选最大值?

解决方案

要实现你的需求,只需要给max()函数的key参数设置复合排序规则即可,一次判断就能同时处理两种场景:

max_count_dict = {(2,4):1, (4,):1}
# 核心代码:先按值降序,值相等则按元组长度升序
max_count_key = max(max_count_dict, key=lambda k: (-max_count_dict[k], len(k)))
print(max_count_key)  # 输出:(4,)

逻辑说明

  • -max_count_dict[k]:将字典的值取负,让max()在比较时,值越大的键优先级越高(比如值3对应的-3比2对应的-2大,会被优先选中);
  • len(k):当多个键的值相等时,max()会自动比较元组的长度,长度越小的元组会被选中。

验证值不相等的场景

如果字典里的值有差异,会优先返回值最大的键:

max_count_dict = {(2,4):3, (4,):1, (1,3,5):2}
max_count_key = max(max_count_dict, key=lambda k: (-max_count_dict[k], len(k)))
print(max_count_key)  # 输出:(2,4)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 11:22:04