根据特定键值对字典进行排序

时间:2020-03-24 12:46:45

标签: python-2.7

我从存储在变量d中的数据源中获取数据

d = {
 '0174': 
    {
    'exists': 'Yes',
    'order': 4, 
    }, 
'0171': 
    {
    'order': 1, 
    }, 
'0080': {
    'exists': 'Yes', 
    'order': 0, 
    }, 
'0173': 
    {
        'exists': 'No', 
        'order': 3, 
    }, 
'0172': 
        { 
        'exists': 'Yes',
        'order': 2, 
        }
}

我写了下面的逻辑,

for w in sorted(d, key=d.get, reverse=True):
    print(w, d[w]["shot_order"])

但不完美。

我希望能够根据key中的顺序dict进行排序 请帮忙。

1 个答案:

答案 0 :(得分:0)

您需要使用key=lambda outer_key: d[outer_key]['order']作为排序键:

for w in sorted(d, key=lambda outer_key: d[outer_key]['order'], reverse=True):
    print(w)

输出

0174
0173
0172
0171
0080