我是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]