如何从Python字典中选取对应最大值的关键帧
问题
现有如下存储关键帧数值的Python字典:
betweeness = {'1': 0.0, '2': 0.0, '3': 0.012383661306863258, '5': 0.2325097571925996, '9': 0.021426274633144952, '13': 0.0, '51': 0.020636786004927934, '58': 0.0, '101': 0.050549206468619164}
需求为从上述字典中选取对应值最大的关键帧(即字典的键),针对给出的示例,预期返回结果为'5',求最简实现方法。
解答
直接使用Python内置max()函数,指定取值比较规则即可,一行代码就能实现需求:
target_key = max(betweeness, key=betweeness.get)
实现逻辑说明:
- 直接遍历字典时,默认迭代对象是字典的所有键,无需额外调用
keys()方法 - 参数
key=betweeness.get指定比较规则为:以每个键对应的字典值作为判断大小的依据,最终返回值最大的键 - 针对示例字典运行上述代码,得到的
target_key就是预期结果'5'
如果需要同时获取最大值和对应的键,可以使用如下写法:
max_key, max_val = max(betweeness.items(), key=lambda item: item[1])
仅需要取最大对应值的键时,第一种写法更简洁、执行效率更高。
内容的提问来源于stack exchange,提问作者Kalpana
相关产品推荐
相关产品推荐

