根据键的多个值之一对字典进行排序

时间:2018-11-03 23:54:12

标签: python python-3.x sorting dictionary

我有这样的字典

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

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

2 个答案:

答案 0 :(得分:1)

您可以使用t.items(),它返回tuple对象的列表,其中索引为key的{​​{1}},索引为0的{​​{1}}。使用value降序,

1

或者,如果您仅对值感兴趣,则可以从dict中获取reverse=True并使用sorted_dict = sorted(t.items(), key = lambda x: x[1]['Jf'], reverse=True) print(sorted_dict)

values()

答案 1 :(得分:1)

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

另一方面,您可以考虑使用datetime库,而不是将日期编码为字符串。例如:

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