#假设有一个存放学生学号和语数英三门功课成绩的列表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
悬赏问题
- ¥20 机器学习能否像多层线性模型一样处理嵌套数据
- ¥20 西门子S7-Graph,S7-300,梯形图
- ¥50 用易语言http 访问不了网页
- ¥50 safari浏览器fetch提交数据后数据丢失问题
- ¥15 matlab不知道怎么改,求解答!!
- ¥15 永磁直线电机的电流环pi调不出来
- ¥15 用stata实现聚类的代码
- ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
- ¥20 docker里部署springboot项目,访问不到扬声器
- ¥15 netty整合springboot之后自动重连失效