python - 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
而不是完整的对象
解决方案
以下
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'}}}
推荐阅读
- ios - 无法使用“”类型的参数列表调用“*” - Swift 泛型问题
- php - 类 stdClass 的对象无法转换为 int codeigniter
- android - Android Studio 更新到 3.3.1 后库的 AndroidX 转换失败,这是 Jetifier 错误吗?
- wordpress - 在管理订单中使用 GTIN 编号搜索产品,同时在 woocommerce 中从后端手动添加新产品
- ruby-on-rails - rails f.number_field vs number_field_tag
- wordpress - Wordpress - Woocommerce:重新缩放透明 png 后的背景噪音
- c# - LINQ - 如何比较组中的前两项然后下一项?
- sorting - elasticsearch有没有办法对数组字段的记录进行排序?
- solidity - Solidity 语法的设计目标是什么
- android - 实时数据返回旧值,onChanged 多次触发