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

Python中如何通过字典的值获取对应键及最大值对应的键

实现方法

你原有代码只遍历了字典的值,无法关联到对应的键,修改为遍历键值对,比较值的大小时同步记录对应键即可。

方案1:修改现有遍历逻辑

保留你原有计数、统计总市值的逻辑,调整遍历方式即可:

banks = {
    "National Bank of Canada" : "327",
    "Toronto-Dominion Bank" : "302", 
    "Royal Bank of Canada" : "173", 
    "Wells Fargo" : "273", 
    "Goldman Sachs" : "87", 
    "Morgan Stanley" : "72", 
    "Canadian Imperial Bank of Commerce" : "83",
    "TD Bank" : "108", 
    "Bank of Montreal" : "67", 
    "Capital One" : "47", 
    "FNB Corporation" : "4", 
    "Laurentian Bank of Canada" : "3", 
    "Ally Financial" : "12",
    "Montreal Trust Company" : "145",
    "Canadian Western Bank" : ".97"
}

# 先初始化所有需要用到的变量,避免运行报错
count = 0
total_mkt_cap = 0.0
largest_value = 0.0
largest = ""

# 遍历键值对,同时拿到银行名称和对应市值
for bank_name, value_str in banks.items():
    count += 1
    current_value = float(value_str)
    total_mkt_cap += current_value
    # 你原代码里的total =+ count是错误写法,若需要累计总数直接使用count变量即可
    if current_value > largest_value:
        largest_value = current_value
        # 符合条件时存储对应的键,也就是银行名称
        largest = bank_name

运行完成后largest变量的内容就是"National Bank of Canada"。

方案2:使用内置max函数(无需手动遍历)

如果你不需要统计总数、总市值,仅需要获取最大市值对应的键,可以直接用Python内置的max()函数实现,代码更简洁:

# 按照每个键对应的值(转浮点数)比较大小,返回值最大的键
largest = max(banks.keys(), key=lambda bank_name: float(banks[bank_name]))

也可以直接遍历键值对实现,逻辑更直观:

largest = max(banks.items(), key=lambda item: float(item[1]))[0]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 05:36:08