Python 如何使用max()函数查找字典中最大值对应的键?
我知道如何在字典中找到对应于最大值的键,这要感谢Stackoverflow上以下问题的答案- , , 等等 但我无法理解,对于一本字典的字典来说,这些将是怎样的结果 示例-Python 如何使用max()函数查找字典中最大值对应的键?,python,dictionary,key,max,Python,Dictionary,Key,Max,我知道如何在字典中找到对应于最大值的键,这要感谢Stackoverflow上以下问题的答案- , , 等等 但我无法理解,对于一本字典的字典来说,这些将是怎样的结果 示例- 我有一本字典d[x][l]。假设,我需要找到以下内容- 对于特定的l='green',我需要找到x的对应值,其中d[x]['green']为最大值 在这种情况下如何使用max()函数?我想避免重复。我希望在矩阵中找到类似于MATLAB的方法-max(d(:,l)) d[x][l]采用整数值,x也采用lambda: max(d
我有一本字典
d[x][l]
。假设,我需要找到以下内容-
对于特定的l='green'
,我需要找到x
的对应值,其中d[x]['green']
为最大值
在这种情况下如何使用max()
函数?我想避免重复。我希望在矩阵中找到类似于MATLAB的方法-max(d(:,l))
d[x][l]
采用整数值,x
也采用lambda:
max(d, key=lambda x: d[x]['green'])
使用d
中的每个键调用key
函数;如果要查找d[key]['green']
最高的键,请准确返回该键
演示:
d[10]['green']
是最高值,因此返回10
。谢谢您的回答。我还在学习lambda操作符是如何工作的!如果x采用列表中的值,而不是字典中的所有键,那么答案是什么?@SatarupaGuha:lambda
只创建一个函数,其中一个表达式返回其结果lambda x:d[x]['green']
与def somefunction(x):返回d[x]['green']
相同,只是您不必给它命名。@SatarupaGuha:d
是一个字典,在字典上循环(就像max()
将要做的那样)产生键,因此x
是d
中的一个键d[x]
是d
中的一个值,根据您的问题,这是所有字典中至少有一个键“绿色”
。@ifreak:请记住,iterable中的每个值都会调用键函数。只要该函数返回一个用于计算最大值的值,它就可以工作。
>>> d = {10: {'green': 42}, 81: {'green': 5, 'blue': 100}}
>>> max(d, key=lambda x: d[x]['green'])
10