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

Python:如何根据字典每个键对应列表的绝对最大值生成标记字典

如何在Python中根据字典值列表的绝对最大值生成标记值?

给定如下字典:

original_dict = {(1,1,True):[-1, 0.26], (2,1,True):[0.1, 0],(1,2,True):[0.01, -1],(2,2,True):[1, -0.11]}

需要生成新字典,每个键对应的标记值规则:

  • 若列表中绝对值最大的元素是第一个元素,标记为0;
  • 若绝对值最大的是第二个元素,标记为1。

期望输出:

new_dict = {(1,1,True):0, (2,1,True):0,(1,2,True):1,(2,2,True):0}

解法:使用字典推导式

这是最简洁高效的方式,直接遍历原字典的键值对,按规则计算标记值:

original_dict = {(1,1,True):[-1, 0.26], (2,1,True):[0.1, 0],(1,2,True):[0.01, -1],(2,2,True):[1, -0.11]}

new_dict = {
    key: 0 if abs(val[0]) > abs(val[1]) else 1
    for key, val in original_dict.items()
}

print(new_dict)
# 输出:{(1, 1, True): 0, (2, 1, True): 0, (1, 2, True): 1, (2, 2, True): 0}

逻辑说明

  1. 遍历原字典的每个key-value对,val是对应的双元素列表;
  2. 分别计算列表两个元素的绝对值:abs(val[0])和abs(val[1]);
  3. 比较两者大小:如果第一个元素的绝对值更大,返回0;否则返回1(若需要处理两者绝对值相等的情况,只需把>改成>=,即可让相等时返回0)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 10:20:42