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

如何从含元组键的Python字典中提取最大值对应键并拆分输出

解决方法:找出字典中值最大的键并提取州和月份

嘿,这事儿其实很简单,Python的内置函数就能帮你轻松搞定!咱们一步步来:

步骤1:找到值最大的键值对

你可以用max()函数,配合字典的items()方法获取所有键值对,然后指定按值来排序找最大值:

# 你的数据集
rainfall_and_month = {('NSW', '06'): 0.4, ('QLD', '06'): 0.2, ('VIC', '06'): 0.0, ('NSW', '07'): 0.2, ('QLD', '07'): 0.4, ('VIC', '07'): 0.0, ('NSW', '08'): 0.2, ('QLD', '08'): 0.2, ('VIC', '08'): 0.0, ('NSW', '09'): 0.2, ('QLD', '09'): 0.2, ('VIC', '09'): 0.0, ('NSW', '10'): 0.2, ('QLD', '10'): 0.2, ('VIC', '10'): 0.0, ('NSW', '11'): 0.2, ('QLD', '11'): 0.6, ('VIC', '11'): 0.0}

# 找出值最大的键值对
max_pair = max(rainfall_and_month.items(), key=lambda x: x[1])

这里的lambda x: x[1]告诉max()函数:比较每个键值对的第二个元素(也就是值),找出最大的那一组。

步骤2:提取州和月份

max_pair是一个类似(('QLD', '11'), 0.6)的元组,我们可以直接解构里面的键(也就是州和月份的元组):

# 解构键,得到州和月份
(state, month) = max_pair[0]

或者更简洁的写法(如果不需要最大值可以忽略max_value):

(state, month), max_value = max_pair

步骤3:按要求输出

最后就可以用你想要的格式打印了:

print("A-value:", state)
print("B-value:", month)

完整示例代码

把所有步骤合起来,就是这样:

rainfall_and_month = {('NSW', '06'): 0.4, ('QLD', '06'): 0.2, ('VIC', '06'): 0.0, ('NSW', '07'): 0.2, ('QLD', '07'): 0.4, ('VIC', '07'): 0.0, ('NSW', '08'): 0.2, ('QLD', '08'): 0.2, ('VIC', '08'): 0.0, ('NSW', '09'): 0.2, ('QLD', '09'): 0.2, ('VIC', '09'): 0.0, ('NSW', '10'): 0.2, ('QLD', '10'): 0.2, ('VIC', '10'): 0.0, ('NSW', '11'): 0.2, ('QLD', '11'): 0.6, ('VIC', '11'): 0.0}

# 找出最大值对应的键值对
max_pair = max(rainfall_and_month.items(), key=lambda x: x[1])
# 提取州和月份
state, month = max_pair[0]
# 输出
print("A-value:", state)
print("B-value:", month)

运行这段代码,就会得到你想要的结果:

A-value: QLD
B-value: 11

另外,顺便提一句:你生成字典的代码可以简化一下,不用分开判断键是否存在,直接用dict.get()方法就能一行搞定:

key = (state, month)
rainfall_and_month[key] = min(rainfall, rainfall_and_month.get(key, float('inf')))

get(key, float('inf'))的意思是:如果键不存在,就返回无穷大,这样min(rainfall, 无穷大)就会直接取rainfall,和你原来的逻辑完全一致,代码更简洁~

内容的提问来源于stack exchange,提问作者P. Parker

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:53:20