按最接近的值对字典排序

时间:2019-01-28 17:11:06

标签: python sorting dictionary

我有一个键和值的字典,值从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 :(得分:4)

您已经接近,只需这样做:

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)]