题解 | #成绩排序#
成绩排序
https://www.nowcoder.com/practice/8e400fd9905747e4acc2aeed7240978b
from functools import cmp_to_key
def infosSortCmpS2B(a, b):
    if a["Point"] == b["Point"]:
        return -1 if a["No"] < b["No"] else 1
    else:
        return -1 if a["Point"] < b["Point"] else 1
def infosSortCmpB2S(a, b):
    if a["Point"] == b["Point"]:
        return -1 if a["No"] < b["No"] else 1
    else:
        return -1 if a["Point"] > b["Point"] else 1
if __name__ == "__main__":
    n = int(input())
    sortMode = int(input())
    stuInfoList = list()
    for i in range(n):
        infoStrList = list(str(input()).split(" "))
        nowStuInfo = {
            "Name": infoStrList[0],
            "Point": int(infoStrList[1]),
            "No": i,
        }
        stuInfoList.append(nowStuInfo)
    if sortMode == 0:
        stuInfoList = sorted(stuInfoList, key=cmp_to_key(infosSortCmpB2S))
    else:
        stuInfoList = sorted(stuInfoList, key=cmp_to_key(infosSortCmpS2B))
    for i in stuInfoList:
        print(i["Name"], i["Point"])
小排一手序即可,注意  所需要的自定义比较函数的返回值。
具体来说:
- -1:表示 应该排在 之前。 
- 1:表示 应该排在 之后。 
 海康威视公司福利 1134人发布
海康威视公司福利 1134人发布