计算机二级数据提取(python)

完整代码

分段解析:

运行结果

使用items()函数以列表返回可遍历的(键,值)元组数组,将字典中的键值对以元组存储,并将众元组存在列表中。(人话:就是将所需数值从字典中提取出来,并以元组的形式存在列表中),这里是将形成的键值对存在sv

由于课程是多门,因此新字典scores(开头定义过了)的值v需要以列表的方式,保存各门课程的成绩,所以在不是的情况下,新字典scores的值v是利用append(it[1])的方式,追加到列表的后面;对v做append操作,必须要事先定义v是一个空列表;因此需要在对每一条旧字典stud的键值对信息做处理的for it in sv:语句之前,用v = []初始化v为一个空列表;所以接下来是给新字典scores添加一条键值对,scores[k] = v

人话:现在对sv里的元组进行遍历,先检索it[0]=’sid’:因为我们后续需要根据sid进行排序。

在检索到sid以后利用k=it[1]将sid后的数值提取出来,用k接收。else如果没有检索到sid则使用v.append(it[1])将后面的课程分取出形成一个列表放在v中,在遍历完成后,使用scores[k]=v将刚在提出的数据存放在字典scores里

下面就是scores里目前存放的数据

接下来我们需要对提取出的数据进行排序

题目要求按学号从小到大的顺序输出学号和成绩,所以需要对字典的键值对内容items()提取到列表so里,到这里就变成了下面的形式

接下来使用sort()函数进行排序操作

Key=lambda x:x[0]这里表示以键的数据进行排序lambda x:x[0] , lambda为匿名函数(作为临时使用的小函数)表示将列表中的序列从0开始,排序依据用x[0]里的数值,也就是sid的数值(101,102,103),reverse=False表示升序排序,Ture为降序,变成如下形式

现在需要按照题目要求输出,对so进行遍历,将元组提取出来即可

就ok了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值