我是python的新手,正在从事一个小项目:

90、75、65、50、40以下是成绩

我的代码:

grade1 = int(input("Enter grade 1:"))
grade2 = int(input("Enter grade 2:"))
grade3 = int(input("Enter grade 3:"))
grade4 = int(input("Enter grade 4:"))
grade5 = int(input("Enter grade 5:"))

numbers = [grade1,grade2,grade3,grade4,grade5]
sorted_grades = sorted(numbers)
topthree = sorted_grades[-1,-2,-3]


但是,在运行topthree时收到错误消息:


  TypeError:列表索引必须是整数或切片,而不是元组


如何避免这种情况?

最佳答案

您需要像这样使用列表切片:

topthree = sorted_grades[:-4:-1]


我知道它说-4,但它排在前三位。

如果要使用列表,则需要花费更多的精力:

indices = [-1, -2, -3]
topthree = [sorted_grades[i] for i in indices]


您还可以反向排序:

sorted_grades = sorted(numbers, reverse=True)
topthree = sorted_grades[:3]

09-13 08:52