Как преобразовать словарь с числовыми значениями в список, основываясь на том, как высоко значение в Python - PullRequest
1 голос
/ 10 июля 2019

У меня есть словарь, в котором есть несколько строк в качестве ключей и число в качестве значения, которое служит системой ранжирования, например, для определения важности чего-либо. Вот пример:

{"eggs": 14, "milk": 8, "flowers":11, "couch":13}

Мне нужен способ преобразовать это в список и упорядочить его по их значениям, чтобы результат был:

["eggs", "couch", "flowers", "milk"]

Как видите, порядок списков основан на предыдущем значении, которое существовало в словаре. Есть ли что-то, что я могу использовать для этого?

Ответы [ 2 ]

5 голосов
/ 10 июля 2019

Вы можете передать аргумент key во встроенную сортированную функцию следующим образом:

d = {"eggs": 14, "milk": 8, "flowers":11, "couch":13}
sorted(d, key=lambda k:d[k], reverse=True)
>> ['eggs', 'couch', 'flowers', 'milk']
0 голосов
/ 10 июля 2019

Вы можете использовать функцию sorted для сортировки слова:

In [5]: d = {"eggs": 14, "milk": 8, "flowers":11, "couch":13}
In [8]: sorted(d, key=lambda x:d[x])                                                                                                                            
Out[8]: ['milk', 'flowers', 'couch', 'eggs']

, в котором параметр key должен быть функцией, входом которой являются элементы набора для сортировки, аoutput - значение, представляющее порядок.

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