Словарь Python. Вывод ключа по значению, но есть повторяющиеся значения
Есть словарь, состоящий из пар вида [слово : приоритет в строке]. Слова требуется расставить в порядке приоритета в словаре. Проблема в том, что я не могу придумать, как извлекать слово по его приоритету. Можно было бы реверсировать словарь и извлекать элементы по ключу, но тогда теряются слова с одинаковым приоритетом, например, [таким : 0.6, нашей : 0.6]. Словарь для отладки использую следующий:
[таким : 0.6, образом : 0.571, постоянное : 0.5,
обеспечение : 0.45, нашей : 0.6, деятельности : 0.5]
Если возможно сортировать словарь по значению, т.е. в данном случае по приоритету, это будет довольно хорошим решением, но пока мне не удалось реализовать такую сортировку.
.
Ответы (2 шт):
Можно использовать сортировку по ключу
d = {
'word': 0.6,
'end': 0.5,
'second': 0.6,
'cat': 0.7
}
l = list(d.items())
l.sort(key=lambda x: x[1])
print(l)
Попробуйте так:
sorted(dic, key=lambda x: dic[x])
Этот пример сортирует по возрастанию, если вам нужно наоборот то так:
sorted(dic, key=lambda x: dic[x], reverse=True)
(dic - это ваш словарь)