我的字典看起来像这样:
D={'a':{'val1':1,'val2':5,'val3':4},
'b':{'val1':4,'val2':2,'val3':7},
'c':{'val1':2,'val2':4,'val3':9},
'd':{'val1':5,'val2':6,'val3':3}}
现在我想获得外键,即a,b,c或d,它具有最高值' val2'。怎么做?
答案 0 :(得分:3)
In [13]: max(D, key=lambda x: D[x]['val2'])
Out[13]: 'd'
max
可以将任何iterable作为其第一个参数。 dicts
是迭代 - 它们遍历键。
因此max(D)
将返回D中的密钥。
当您提供key
功能时,例如
lambda x: D[x]['val2']
为iterable中的每个值调用一次函数(在这种情况下,x
采用D
中的键的值。函数返回的值用作密钥的代理,以便查找最大值。
因此max
找到D
中D[x]['val2']
最大的密钥。