сортировка словаря по заданному значению ключа c - PullRequest
0 голосов
/ 24 марта 2020

Я получаю данные из источника, который храню в переменной 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, 
        }
}

Я написал приведенные ниже логи c, которые несколько работают,

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

, но не идеально.

Я хочу иметь возможность сортировать по порядку key в dict, пожалуйста, помогите.

1 Ответ

0 голосов
/ 24 марта 2020

Вам необходимо использовать 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
...