【问题描述】有一个列表变量x=[[“101”,85],[“102”,90],[“103”,50],[“104”,97],[“105”,78],[“106”,66],[“107”,90],[“108”,60],[“109”,100],[“110”,73]]
保存了10个学生的学号和一门课成绩,要求根据课程成绩给每个学生添加名次,成绩最高的学生名次是1,第2名名次是2,…,以此类推,最后输出每个学生的学号、成绩和名次。要求分数相同名次也相同。
【输入形式】无
【输出形式】用print()函数
【样例输入】无
【样例输出】
学号 成绩 名次
101 85 5
102 90 3
103 50 10
104 97 2
105 78 6
106 66 8
107 90 3
108 60 9
109 100 1
110737
【样例说明】提示:先将每个学生的名次初值设定为1,再依次两两成绩比较,成绩低的名次加1。另,成绩相同则名次也相同,从而可能没有某些名次,例如【样例输出】中名次列有两个3,所以名次列中没有4。
【评分标准】
x=[["101",85],["102",90],["103",50],["104",97],["105",78],\
["106",66],["107",90],["108",60],["109",100],["110",73]]
for i in range(len(x)):
x[i].append(1)#每个学生名次初值均为1
for i in range(len(x)-1):
for j in range(i+1,len(x)):
if x[i][1]<x[j][1]:
x[i][2]+=1 #成绩低的名次加上1
elif x[i][1]>x[j][1]:
x[j][2]+=1
print("{}\t{}\t{}".format('学号','成绩','名次'))
for i in x:
print("{}\t{}\t{}".format(i[0],i[1],i[2]))