Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用max()函数查找字典中最大值对应的键?_Python_Dictionary_Key_Max - Fatal编程技术网

Python 如何使用max()函数查找字典中最大值对应的键?

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

我知道如何在字典中找到对应于最大值的键,这要感谢Stackoverflow上以下问题的答案-

,

,

等等

但我无法理解,对于一本字典的字典来说,这些将是怎样的结果

示例-
我有一本字典
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