Сортировка словаря по ближайшему значению - PullRequest
0 голосов
/ 28 января 2019

У меня есть словарь ключей и значений, значения которых находятся в диапазоне от 0,0 до 1,0, как показано ниже:

{'item1': 0.88, 'item2': 0.4, 'item3': 0.49, 'item4': 0.75, 'item5': 0.32, 'item6': 0.9}

Мне пришлось отсортировать его по значению, ближайшему к 0.5.Я знаю, как сортировать словарь по возрастанию или убыванию по наибольшему или наименьшему значению, используя:

sorted_by_value = sorted(dic.items(), key=lambda x:x[1])

Но я не знаю, когда речь идет о сортировке формы, наиболее близкой к заданной.

1 Ответ

0 голосов
/ 28 января 2019

Вы были близки, просто сделайте:

d = {'item1': 0.88, 'item2': 0.4, 'item3': 0.49, 'item4': 0.75, 'item5': 0.32, 'item6': 0.9}

sorted_by_value = sorted(d.items(), key=lambda x: abs(x[1] - 0.5))

print(sorted_by_value)

Вывод

[('item3', 0.49), ('item2', 0.4), ('item5', 0.32), ('item4', 0.75), ('item1', 0.88), ('item6', 0.9)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...