1. 添加名次

【问题描述】有一个列表变量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])) 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值