在嵌套字典中查找最大值

时间:2018-08-02 14:32:43

标签: python-3.x dictionary max

我在理解嵌套字典的结构时如何获取其最大值时遇到了麻烦:

dict = {'City': {1: {'avg_dur': 10.58568297387339,
                 'n_trips': 1901,
                 'tot_dur': 20123.383333333313},
             2: {'avg_dur': 12.25947507658035,
                 'n_trips': 2394,
                 'tot_dur': 29349.183333333356},
             3: {'avg_dur': 12.95495652953303,
                 'n_trips': 3719,
                 'tot_dur': 48179.48333333334}}}

我正在尝试提取最大“ avg_trips”功能的密钥。在上面的代码段中,我希望答案返回3。我想我需要在这里使用lambda,但是我不确定嵌套字典在这一级别上如何工作。

2 个答案:

答案 0 :(得分:2)

maxkey一起使用

例如:

dict = {'City': {1: {'avg_dur': 10.58568297387339,
                 'n_trips': 1901,
                 'tot_dur': 20123.383333333313},
             2: {'avg_dur': 12.25947507658035,
                 'n_trips': 2394,
                 'tot_dur': 29349.183333333356},
             3: {'avg_dur': 12.95495652953303,
                 'n_trips': 3719,
                 'tot_dur': 48179.48333333334}}}

print(max(dict["City"].items(), key=lambda x: x[1]['n_trips'])[0])

输出:

3

答案 1 :(得分:0)

您还可以按n_trips对键进行排序,并取最后一个键:

>>> sorted(mydict['City'].keys(), key=lambda x: mydict['City'][x]['n_trips'])[-1]
3