Python字典中如何从值反向获取对应键?求最大值关联键的方法
找出字典中值最大的对应键
方法一:先找最大值再遍历匹配
你已经拿到了最大值a,接下来可以遍历字典的键值对,找到值等于a的键:
d = {} for i in range(len(names)): d[i] = len(names[i]) a = max(d.values()) # 新增部分:查找对应键 max_key = None for key, value in d.items(): if value == a: max_key = key break # 如果有多个键对应最大值,这里取第一个出现的
如果需要获取所有对应最大值的键,可以改成列表推导式:
max_keys = [key for key, value in d.items() if value == a]
方法二:一步到位用max函数直接取
更高效的方式是直接对字典的items()使用max(),通过key参数指定按值比较,一步拿到键值对后取键:
# 先简化字典创建(用enumerate更简洁) d = {i: len(name) for i, name in enumerate(names)} # 直接获取值最大的键 max_key = max(d.items(), key=lambda x: x[1])[0]
如果有多个键对应最大值,这个方法会返回第一个遇到的键;如果要所有键,还是用上面的列表推导式。
简化初始字典的创建
你原来的循环可以用enumerate简化,避免手动索引:
d = {i: len(name) for i, name in enumerate(names)}
内容的提问来源于stack exchange,提问作者Sasmit Dey Sarkar
相关产品推荐
相关产品推荐

