为什么我的代码无法正确排序?还是需要对其进行更改?

时间:2019-04-13 20:21:01

标签: python

我应该得到一些投球手及其得分的投入。然后输出最高得分,最低得分和平均团队得分。我的代码无法正确对分数进行排序。

def myMax(list): 
    maxVal= -100000 
    maxIndex = -1 
    for i in range(len(list)): 
        if list[i] > maxVal: 
            maxVal = list[i] 
            maxIndex = i 
nsList = []
while True:
    temp = input("Enter Bowler and thier score by Name, Score ")
    if(len(temp)==0):
         break
    split_list = temp.split(' ')
    score=int(split_list[1])
    nsList.append((split_list[0],score))



#end of loop
#print ("The high score is ", maxVal)
print(nsList)
print ("The high score is", (nsList[0]))
print ("Sorry" , nsList[-1], "has the lowest score")

1 个答案:

答案 0 :(得分:0)

您可以按以下顺序对列表进行降序:

nsList.sort(key=lambda v : v[1], reverse=True)

将其放在构建for的{​​{1}}循环之后,您会很好。您不需要nsList函数。

顺便说一句,您应该在提示信息中明确输入的格式。您当前说:“按名称输入保龄球和他们的分数,分数”。这建议您在“名称”和“分数”之间放置一个逗号,但是您的代码需要在它们之间使用单个空格字符才能正常工作。或者,您可以增强输入解析代码,使其在输入时更加灵活。