首页 > 解决方案 > python嵌套dict获取具有最大键的dict对象

问题描述

我有一个 dd 对象:

dd = {'111': {'10': {'cid': '555', 'num': '0'}}, '222': {'10': {'cid': '555', 'num': '2'}}, '333': {'10': {'cid': '555', 'num': '2'}}, '121': {'10': {'cid': '555', 'num': '4'}}}

与类似cid

我需要找到最大 dd 对象num

想要的:

想要的:{'121': {'10': {'cid': '555', 'num': '4'}}}

我知道如何遍历嵌套字典以找到最大键

 print(max(int(z['num']) for d in dd.values() for z in d.values()))  # 4

^ 但这给出了对象的值num而不是完整的对象

标签: pythonpython-3.xdictionary

解决方案


以下

dd = {'111': {'10': {'cid': '555', 'num': '0'}}, '222': {'10': {'cid': '555', 'num': '2'}},
      '333': {'10': {'cid': '555', 'num': '2'}}, '121': {'10': {'cid': '555', 'num': '4'}}}

pair = max([(int(v['num']), val, key) for key, val in dd.items() for v in val.values()], key=lambda item: item[0])
print({pair[2]: pair[1]})

输出

{'121': {'10': {'cid': '555', 'num': '4'}}}

推荐阅读