首页 > 解决方案 > 从多个字典列表中返回特定键中具有最高值的字典

问题描述

我有以下两个字典列表:

    regionA = [dict(is_buy_order=True, price=1000, type=1),
               dict(is_buy_order=True, price=100, type=2),
               dict(is_buy_order=False, price=10, type=2)]
    regionB = [dict(is_buy_order=False, price=10, type=1),
               dict(is_buy_order=True, price=100, type=1),
               dict(is_buy_order=True, price=1000, type=2)]

考虑到来自 regionA 和 regionB 的数据,我想返回类型 1 和类型 2 的键 'price' 中具有最高值和键 'is_buy_order' 中的值 'True' 的字典。

我已经看到示例(例如,从特定键中具有最高值的字典列表中返回字典)适用于单个字典列表但不能使它们与集合一起使用,我想知道是否有直接的方法做。

(这里的第一个问题:让我知道是否需要澄清,感谢您的帮助!)

标签: pythondictionary

解决方案


您可以通过执行以下操作来做到这一点:

both_regions = regionA + regionB
result = sorted([d for d in both_regions if d['is_buy_order']],
                key=lambda x: x['price'], reverse=True)[0]

输出

{'is_buy_order': True, 'price': 1000, 'type': 1}

推荐阅读