Как отсортировать словарь по убыванию?
Есть словарь:
users_database = {
'609629735': {'balance': 1, 'full_name': 'Anonymous Anonymously'},
'639141904': {'balance': 32, 'full_name': '?????'}
}
Как его можно отсортировать по убыванию значения в 'balance'?
Мне необходимо получить:
users_database = {
'639141904': {'balance': 32, 'full_name': '?????'},
'609629735': {'balance': 1, 'full_name': 'Anonymous Anonymously'}
}
Пару примеров, которыми я пытался получить необходимый результат:
users_database = {k: users_database[k]['balance'] for k in sorted(users_database, key=users_database.get('balance'), reverse=True)}
и
users_database = sorted(users_database, key=lambda x: int(x['balance']))
Прошу оставить читаемый и понятный код, который можно будет самостоятельно разобрать и понять что к чему, иные идеи / предложения / коды прошу оставлять в качестве комментария на этот вопрос.
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
Для сортировки данных в Python используют встроенную функцию sorted():
res = dict(sorted(users_database.items(),
key=lambda x: x[1].get("balance"),
reverse=True))
результат:
In [281]: res
Out[281]:
{'639141904': {'balance': 32, 'full_name': '?????'},
'609629735': {'balance': 1, 'full_name': 'Anonymous Anonymously'}}