基于key的多个值之一对dict进行排序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于key的多个值之一对dict进行排序相关的知识,希望对你有一定的参考价值。

我的dict看起来像这样

t={'Name1':{"Jf":0.89,"Date":"09-10-2018"},'Name2':{"Jf":0.77,"Date":"09-11-2018"}}

如何根据Jf值对降序进行降序排序。谢谢!!

答案

你可以使用t.items(),它将返回tuple对象列表,其中key位于0索引处,而value位于1指数处。使用reverse=True降序,

sorted_dict = sorted(t.items(), key = lambda x: x[1]['Jf'], reverse=True)
print(sorted_dict)

或者如果你只对价值感兴趣,你可以从dict获得values()并使用sorted

sorted_dict = sorted(t.values(), key = lambda x:x['Jf'], reverse=True)
print(sorted_dict)
另一答案

Python词典不保留顺序,因此可以将其排序为列表:

t = {'Name1': {"Jf": 0.89, "Date": "09-10-2018"}, 'Name2' {"Jf": 0.77, "Date": "09-11-2018"}}
sorted(t.items(), key=lambda item: item[1]['Jf'])

哪个应该给出结果:

[('Name2', {'Jf': 0.77, 'Date': '09-11-2018'}), ('Name1', {'Jf': 0.89, 'Date': '09-10-2018'})]

另外,您可以考虑使用日期时间库而不是将日期编码为字符串;例如:

from datetime import date
name1_date = date(2018, 9, 11)
name1_date.month  # Returns 9

以上是关于基于key的多个值之一对dict进行排序的主要内容,如果未能解决你的问题,请参考以下文章

python list 嵌套 dict 按照字典中的单个key进行单级排序 或 按照多个键进行多级排序

Python snippet(代码片段)

基于 Key 和 Predicates 对 NSMutableArray 进行排序不起作用?

Python按照list中dict的某个key进行排序

Python中如何以dict的key排序输出?

Python中如何以dict的key排序输出?