数据去重及查找-(集合+元组+列表)

文章提供了一段Python代码,用于处理一个包含学生学号和成绩的列表。首先,代码按照学号对列表进行升序排序并打印去重前的信息。接着,通过双重循环和条件判断实现去重,并再次打印去重后的信息。最后,筛选出不及格学生(成绩低于60分)并按成绩降序打印其信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【问题描述】

变量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])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值