Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 根据key的多个值之一对dict进行排序_Python_Python 3.x_Sorting_Dictionary - Fatal编程技术网

Python 根据key的多个值之一对dict进行排序

Python 根据key的多个值之一对dict进行排序,python,python-3.x,sorting,dictionary,Python,Python 3.x,Sorting,Dictionary,我有一张像这样的纸 t={'Name1':{"Jf":0.89,"Date":"09-10-2018"},'Name2':{"Jf":0.77,"Date":"09-11-2018"}} 如何根据Jf值对dict进行降序排序。谢谢 您可以使用t.items(),它将返回tuple对象的列表,其中键位于0索引处,值位于索引1。按降序使用reverse=True sorted_dict = sorted(t.items(), key = lambda x: x[1]['Jf'], reverse=

我有一张像这样的纸

t={'Name1':{"Jf":0.89,"Date":"09-10-2018"},'Name2':{"Jf":0.77,"Date":"09-11-2018"}}
如何根据Jf值对dict进行降序排序。谢谢

您可以使用
t.items()
,它将返回
tuple
对象的列表,其中
键位于
0
索引处,值位于
索引
1
。按降序使用
reverse=True

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

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

在一个旁注中,您可以考虑使用DATEIME库而不是将日期编码为字符串;例如:

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

到目前为止你试过什么?请发布您的代码,演示如何解决此问题。谢谢,您能否编辑第一个答案,因为每个人都希望保留他们的密钥,并为您的第二个答案添加reverse=True。