сортировка словаря в порядке убывания (i) ключей (ii) значений в Python 3.x - PullRequest
0 голосов
/ 25 ноября 2018

У меня есть словарь:

{1: 6, 2: 4, 3: 7}

Если я хочу отсортировать в порядке убывания ЗНАЧЕНИЯ , я использую:

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

Что я долженсделать для нисходящего порядка KEYS ?

Ответы [ 3 ]

0 голосов
/ 25 ноября 2018

Вы на самом деле довольно близки, просто удалите метод .get, и вам даже не нужно будет передавать key.

dict_test = {1: 6, 2: 4, 3: 7}

for w in sorted(dict_test, reverse = True):
        print (w, dict_test[w])

>>
3 7
2 4
1 6

Если вы перебираете только dict_test, вы возвращаетесьего ключи и с reverse = True, вы возвращаетесь с ключами в порядке убывания.

0 голосов
/ 25 ноября 2018

Используйте словарь, который быстр и компактен:

test_dict = {1: 6, 2: 4, 3: 7}

new_test_dict = {i: j for i,j in sorted(test_dict.items(), reverse=True)}
print(new_test_dict)

Вывод:

C:\Users\Documents>py test.py
{3: 7, 2: 4, 1: 6}
0 голосов
/ 25 ноября 2018

Имейте в виду, что в словаре нет реального "порядка".

Но вы можете получить ключи в виде списка и отсортировать этот список.

sorted(dict_test.keys())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...