#假设有一个存放学生学号和语数英三门功课成绩的列表studs如下:
studs= [{'sid':'103', 'Chinese': 90, 'Math':95, 'English':92},{'sid':'101', 'Chinese': 80, 'Math':85, 'English':82}, {'sid':'102', 'Chinese': 70, 'Math':75, 'English':72}]。编写程序,将列表studs的数据内容提取出来,放到一个字典scores中,在屏幕上按学号从小到大的顺序显示输出所有学生的学号及语数英三门功课的成绩
我现在已经编到了新的字典里,但是不知道怎么重新排序
studs= [{'sid':'103', 'Chinese': 90, 'Math':95, 'English':92},{'sid':'101', 'Chinese': 80, 'Math':85, 'English':82}, {'sid':'102', 'Chinese': 70, 'Math':75, 'English':72}];
dict={};
list=[];
in_key=""
a=[];
score={}
for it in studs:
for chi in it.keys():
if chi!="sid":
list.append(it[chi]);
else:
in_key=it[chi];
a.append(it[chi]);
dict[in_key]=list;
list=[]
Python中从列表里提取字典并根据键来排序
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- P2441M 2022-11-10 11:40关注
studs = [{'sid': '103', 'Chinese': 90, 'Math': 95, 'English': 92}, {'sid': '101', 'Chinese': 80, 'Math': 85, 'English': 82}, {'sid': '102', 'Chinese': 70, 'Math': 75, 'English': 72}] # 这一句是字典解析式 # {key: value for xxx in xxx} scores = {stud['sid']: [stud['Chinese'], stud['Math'], stud['English']] for stud in studs} # 这一句是列表解析式 # [item for xxx in xxx] sids = [int(sid) for sid in scores] # 按学号排序 sids.sort() # 遍历每个学号 for sid in sids: # 获取对应分数 score = scores[str(sid)] # 输出 print(f'sid:{sid} Chinese:{score[0]} Math:{score[1]} English:{score[2]}')
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 4无用 1
悬赏问题
- ¥30 酬劳2w元求合作写文章
- ¥15 在现有系统基础上增加功能
- ¥15 远程桌面文档内容复制粘贴,格式会变化
- ¥15 关于#java#的问题:找一份能快速看完mooc视频的代码
- ¥15 这种微信登录授权 谁可以做啊
- ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
- ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
- ¥15 网络设备配置与管理这个该怎么弄
- ¥20 机器学习能否像多层线性模型一样处理嵌套数据
- ¥20 西门子S7-Graph,S7-300,梯形图