Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.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 3.3.2-根据数字对名称列表进行排序_Python_Sorting_Python 3.x - Fatal编程技术网

Python 3.3.2-根据数字对名称列表进行排序

Python 3.3.2-根据数字对名称列表进行排序,python,sorting,python-3.x,Python,Sorting,Python 3.x,我需要根据姓名的编号对姓名列表进行排序。我拥有的数据示例如下: [['Bob Person', 10], ['Josh Winner', 15], ['Jimmy Dexter', 5], ['Mary Goodsprings', 15]] 正常排序可以做到这一点: [['Bob Person', 10], ['Jimmy Dexter', 5], ['Josh Winner', 15], ['Mary Goodsprings', 15]] 我想进行的排序应该基于它们所耦合的最大数量。但是,

我需要根据姓名的编号对姓名列表进行排序。我拥有的数据示例如下:

[['Bob Person', 10], ['Josh Winner', 15], ['Jimmy Dexter', 5], ['Mary Goodsprings', 15]]
正常排序可以做到这一点:

[['Bob Person', 10], ['Jimmy Dexter', 5], ['Josh Winner', 15], ['Mary Goodsprings', 15]]
我想进行的排序应该基于它们所耦合的最大数量。但是,如果数字相等,那么就应该使用名称。像这样:

[['Josh Winner', 15], ['Mary Goodsprings', 15], ['Bob Person', 10], ['Jimmy Dexter', 5]]
注意玛丽和乔希是如何平手的,但乔希仍然在前面,因为J排在M之前


除了我应该使用
sort()的
函数

使用
-item[1]
按降序排序之外,我几乎不知道如何做这件事

>>> data = [['Bob Person', 10], ['Josh Winner', 15], ['Jimmy Dexter', 5], ['Mary Goodsprings', 15]]
>>> sorted(data, key=lambda item: (-item[1], item[0]))
[['Josh Winner', 15], ['Mary Goodsprings', 15], ['Bob Person', 10], ['Jimmy Dexter', 5]]

使用
-item[1]
按降序排序,编号为
item[0]

>>> data = [['Bob Person', 10], ['Josh Winner', 15], ['Jimmy Dexter', 5], ['Mary Goodsprings', 15]]
>>> sorted(data, key=lambda item: (-item[1], item[0]))
[['Josh Winner', 15], ['Mary Goodsprings', 15], ['Bob Person', 10], ['Jimmy Dexter', 5]]
由于Python排序是(这意味着当多个项具有相同的键时保留顺序),因此可以在多次运行中对列表进行排序。最重要的标准在最后

import operator

data = [['Bob Person', 10], ['Josh Winner', 15], ['Jimmy Dexter', 5], ['Mary Goodsprings', 15]]
data.sort()
data.sort(key=operator.itemgetter(1), reverse=True)
由于Python排序是(这意味着当多个项具有相同的键时保留顺序),因此可以在多次运行中对列表进行排序。最重要的标准在最后

import operator

data = [['Bob Person', 10], ['Josh Winner', 15], ['Jimmy Dexter', 5], ['Mary Goodsprings', 15]]
data.sort()
data.sort(key=operator.itemgetter(1), reverse=True)
“正常排序”示例中出现错误,应替换第一项和第二项在“正常排序”示例中出现错误,应替换第一项和第二项