Сортировка словаря по значениям - PullRequest
0 голосов
/ 10 мая 2019

Я бы хотел заказать словарь по значению от самого высокого до самого низкого.Это так:

{'data1': {'/home/data1': 273}, 'data2': {'/home/data2': 2}, 'data3': {'/home/data3': 10}, 'data4': {'/home/data4': 1}}

Я получил некоторый код, который работает на одной виртуальной машине, но когда я пробую другую, она не работает.


dict = sorted(dicta.items(), key=lambda x: [int(x) for x in x[1].values()], reverse = True)


На одной виртуальной машине яполучил эту ошибку, в то время как в другой она работает (используя virtualenv для выполнения того же скрипта с той же версией Python и т. д.)

TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType'

Любые идеи?

1 Ответ

1 голос
/ 10 мая 2019

Не должно быть ошибок при запуске кода. Но у вас нет названия для вашего словаря.

dict_ =  {'data1': {'/home/data1': 273}, 'data2': {'/home/data2': 2}, 'data3': {'/home/data3': 10}, 'data4': {'/home/data4': 1}}

dictSorted = sorted(dict_.items(), key=lambda x: [int(x) for x in x[1].values()], reverse = True)
...