Rob*_*sod 0 python sorting python-3.x
我需要根据它们所加的数字对名单进行排序.我的数据示例如下:
[['Bob Person', 10], ['Josh Winner', 15], ['Jimmy Dexter', 5], ['Mary Goodsprings', 15]]
Run Code Online (Sandbox Code Playgroud)
正常排序会这样做:
[['Bob Person', 10], ['Jimmy Dexter', 5], ['Josh Winner', 15], ['Mary Goodsprings', 15]]
Run Code Online (Sandbox Code Playgroud)
我想要进行的排序应该基于它们所加的最大数量.但是,如果数字相等,那么它应该使用名称.像这样:
[['Josh Winner', 15], ['Mary Goodsprings', 15], ['Bob Person', 10], ['Jimmy Dexter', 5]]
Run Code Online (Sandbox Code Playgroud)
注意Mary和Josh是如何并列的,但Josh仍然在前面,因为J来自M.
我几乎不知道如何做到这一点,除了我应该使用的key功能sort().
用于-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]]
Run Code Online (Sandbox Code Playgroud)