Python字典排序列表

时间:2019-09-20 07:32:21

标签: python list sorting dictionary

我有字典列表,这些字典也有字典对象。这是列表:

my list

这是我列表的一个简单示例:

result = [ {'parameters' : {'buy_period':10, 'sell_period':20}, 'profit_result': {'base_sharpe_ratio': 0.5, 'base_calmar_ratio': 2.2}},{'parameters' : {'buy_period':20, 'sell_period':30},'profit_result': {'base_sharpe_ratio': 1.5, 'base_calmar_ratio': 3.2} }, {'parameters' : {'buy_period':30, 'sell_period':40}, 'profit_result': {'base_sharpe_ratio': 2.5, 'base_calmar_ratio': 4.2} } ]

我可以通过以下方式对列表进行排序

results.sort(key=itemgetter('sort_metric'))

我想基于内部dict值对列表进行排序,例如,按“ base_sharpe_ratio”排序。我该怎么办?

2 个答案:

答案 0 :(得分:0)

尝试

results.sort(key = lambda dic: dic.get('profit_result').get('base_sharpe_ratio', -float('inf')))

答案 1 :(得分:0)

您可以使用:

inner_key = 'base_sharpe_ratio'
results.sort(key=lambda x: x['profit_result'][inner_key])