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

Python如何获取值为类对象的字典中属性值最小的元素对应的键

错误原因
  • 直接将字典传入min()函数时,默认迭代的是字典的键(也就是你存入的"test1"、"test2"字符串),而非键对应的Test类实例
  • attrgetter('value')尝试从字符串对象上获取不存在的value属性,因此触发AttributeError
修改方案

你需要迭代字典的items()方法获取(键, 类实例)元组,调整key函数的取值逻辑即可同时拿到最小value对应的键和实例对象,修改后的完整代码如下:

from operator import attrgetter

class Test:
    def __init__(self, name, value):
        self.name = name
        self.value = value
        
test1 = Test("test1",4)
test2 = Test("test2",6)
testDictionary = {}
testDictionary["test1"] = test1
testDictionary["test2"] = test2

# 改动点:迭代items()获取(键,实例)元组,key取实例的value属性
res_key, res_obj = min(testDictionary.items(), key=lambda item: item[1].value)
print("对应键: ", res_key, " Name: ", res_obj.name, " Value: ", res_obj.value)

如果习惯用attrgetter也可以将key替换为key=lambda item: attrgetter('value')(item[1]),效果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 07:12:02