【问题描述】
变量lst1=[("028",90),("017",75),("002",40),("005",65),("002",40),("033",78),("017",75),("027",32)]中保存n个学生的学号和一门课成绩。现要求将重复的学生信息只保留一个(去重),然后按学号升序分别输出去重前和去重后的所有学生信息,再按学号升序输出不及格学生信息。
【输入形式】无
【输出形式】用print函数在屏幕上输出。
【样例输入】无
【样例输出】
去重前学号和成绩
002 40
002 40
005 65
017 75
017 75
027 32
028 90
033 78
去重后学号和成绩
002 40
005 65
017 75
027 32
028 90
033 78
不及格学生学号和成绩
002 40
027 32
【样例说明】
【评分标准】
lst1 = [("028", 90), ("017", 75), ("002", 40),
("005", 65), ("002", 40), ("033", 78),
("017", 75), ("027", 32)]
print("去重前学号和成绩")
l = len(lst1)
lst1.sort()
for i in range(0, l):
print(lst1[i][0], lst1[i][1])
lst2 = []
for i in range(0, l):
for j in range(i + 1, l):
if lst1[i][0] == lst1[j][0]:
lst2.append((lst1[i][0], lst1[i][1]))
break
l2 = len(lst2)
lst3 = lst1
for k in range(0, l2):
if (lst2[k][0], lst2[k][1]) in lst1:
lst1.remove((lst2[k][0], lst2[k][1]))
l = len(lst3)
lst3.sort()
print("去重后学号和成绩")
for i in range(0, l):
print(lst3[i][0], lst3[i][1])
lst4 = []
for o in range(0, l):
if lst3[o][1] <= 60:
lst4.append((lst3[o][0], lst3[o][1]))
l = len(lst4)
lst4 = [(v, k) for k, v in lst4]
print("不及格学生学号和成绩")
lst4.sort(reverse=True)
for i in range(0, l):
print(lst4[i][1], lst4[i][0])