[英]Sorting a dict based on one of the multiple values of key
我有这样的字典
t={'Name1':{"Jf":0.89,"Date":"09-10-2018"},'Name2':{"Jf":0.77,"Date":"09-11-2018"}}
如何根据Jf值对字典进行降序排序。 谢谢!!
您可以使用t.items()
,该t.items()
将返回key
为0
索引和value
索引1
的tuple
对象列表。 使用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'})]
附带一提,您可以考虑使用datetime库,而不是将日期编码为字符串。 例如:
from datetime import date
name1_date = date(2018, 9, 11)
name1_date.month # Returns 9
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.