Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.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/8/sorting/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 使用自定义序列对值字典进行排序_Python_Sorting_Dictionary - Fatal编程技术网

Python 使用自定义序列对值字典进行排序

Python 使用自定义序列对值字典进行排序,python,sorting,dictionary,Python,Sorting,Dictionary,因此,基本上我有一个字典列表,其中包含以下值: [ {'First Name ':'Stephen', 'Last Name':'Queen','Age':61,'Marks':89}, {'First Name ':'Stephen', 'Last Name':'Queen','Age':89,'Marks':68}, {'First Name ':'Angelica', 'Last Name':'King','Age':39,'Marks':84}, {'First Name ':'

因此,基本上我有一个字典列表,其中包含以下值:

[
 {'First Name ':'Stephen', 'Last Name':'Queen','Age':61,'Marks':89},
 {'First Name ':'Stephen', 'Last Name':'Queen','Age':89,'Marks':68},
 {'First Name ':'Angelica', 'Last Name':'King','Age':39,'Marks':84},
 {'First Name ':'Stephen', 'Last Name':'King','Age':29,'Marks':78},
 {'First Name ':'Stephen', 'Last Name':'Queen','Age':61,'Marks':84},
]
所以我基本上想对这些值进行排序,首先是名字的升序,然后是第二个名字的升序,然后是年龄的降序,最后是标记的降序。所以,在排序之后,它应该是这样的:

[
 {'First Name ':'Angelica', 'Last Name':'King','Age':39,'Marks':84},
 {'First Name ':'Stephen', 'Last Name':'King','Age':29,'Marks':78},
 {'First Name ':'Stephen', 'Last Name':'Queen','Age':89,'Marks':68},
 {'First Name ':'Stephen', 'Last Name':'Queen','Age':61,'Marks':98},
 {'First Name ':'Stephen', 'Last Name':'Queen','Age':61,'Marks':89}
]

所以我的问题是要用一种蟒蛇式的方法来有效地做到这一点。我尝试过,但没有想到将其复制到我的案例中,在我的案例中,我希望同时对多个键进行自定义排序(即创建一种映射器,以用户定义的方式对字典进行排序)。

这是直截了当的,因为python默认情况下首先根据第一个单元格对元组/列表进行排序,然后根据第二个单元格对元组/列表进行排序。。。因此,请扩展您链接到的解决方案:

newlist = sorted(list_to_be_sorted, key=lambda k: (k['First Name '],k['Last Name'],-k['Age'],-k['Marks']))
-
符号将诱使升序排序按“标记”和“年龄”进行下降