如何在Python字典中根据值获取对应键,找到最大值对应的键
问题解答
方法1:基于现有代码逻辑修改
你当前的代码仅存储了字典的值,没有和对应键绑定,所以无法直接匹配。可以按两种思路调整:
思路1:存储值和键的绑定关系
def get_oldest(things): # 存储(值, 键)元组,排序时会默认优先按值比较 value_key_list = [] for key in things: value_key_list.append((things[key], key)) value_key_list.sort() # 取排序后最后一组的第二个元素,就是最大值对应的键 return value_key_list[-1][1] # 测试代码 a_dict = {"car":5,"laptop":17,"telephone":3,"photo":14} print(get_oldest(a_dict)) # 输出laptop
思路2:拿到最大值后遍历字典匹配
如果你不想改动现有存储值的逻辑,可以在拿到最大值后遍历字典查找对应键:
def get_oldest(things): new_list = [] for elements in things: new_list.append(things[element]) new_list.sort() max_value = new_list[-1] # 遍历字典匹配值和最大值相等的键 for key, value in things.items(): if value == max_value: return key
方法2:更简洁的内置函数实现
Python的max()函数支持自定义比较规则,无需手动排序,一行代码即可实现需求:
a_dict = {"car":5,"laptop":17,"telephone":3,"photo":14} max_key = max(a_dict, key=a_dict.get) print(max_key) # 输出laptop
参数说明:
- 第一个参数传入字典本身,默认遍历字典的键进行比较
key=a_dict.get指定比较规则为:用每个键对应的字典值做大小比较,最终返回值最大的对应键
内容的提问来源于stack exchange,提问作者karl johan
相关产品推荐
相关产品推荐

