Python中如何将一个列表的字符串与另一个列表的整数最简单配对?
嘿,刚接触Python就动手做项目真的超棒!针对你需要存储人名和测试分数、做数据处理的需求,我来给你一步步讲解具体实现~
解决Python存储学生成绩并处理的方案
一、选择合适的数据结构
因为人名和分数是一一对应的配对数据,推荐用列表套字典或者列表套元组来存储,两种方式都很适合新手理解:
方式1:列表套字典(更直观,字段清晰)
# 创建存储学生成绩的列表,每个元素是一个字典,包含姓名和分数 student_scores = [ {"name": "张三", "score": 85}, {"name": "李四", "score": 92}, {"name": "王五", "score": 78} ]
方式2:列表套元组(更简洁)
# 每个元组的第一个元素是姓名,第二个是分数 student_scores = [ ("张三", 85), ("李四", 92), ("王五", 78) ]
二、输出每个学生的姓名和分数
遍历列表就能轻松输出每个人的成绩,两种数据结构的遍历方式略有不同:
针对字典列表的遍历
print("学生成绩明细:") for student in student_scores: # 通过字典的键来获取对应的值 print(f"姓名:{student['name']},分数:{student['score']}")
针对元组列表的遍历
print("学生成绩明细:") # 直接拆分元组里的姓名和分数变量 for name, score in student_scores: print(f"姓名:{name},分数:{score}")
三、计算平均分
先把所有分数提取出来求和,再除以学生总数即可:
针对字典列表的平均分计算
# 用生成器表达式提取所有分数并求和 total_score = sum(student["score"] for student in student_scores) # 计算平均分,保留两位小数更美观 average_score = total_score / len(student_scores) print(f"\n本次测试平均分:{average_score:.2f}")
针对元组列表的平均分计算
total_score = sum(score for name, score in student_scores) average_score = total_score / len(student_scores) print(f"\n本次测试平均分:{average_score:.2f}")
四、扩展:添加新的学生成绩
如果后续需要补充新数据,直接用append()方法就行:
# 字典列表方式添加 student_scores.append({"name": "赵六", "score": 90}) # 元组列表方式添加 # student_scores.append(("赵六", 90))
内容的提问来源于stack exchange,提问作者nathaniel01
相关产品推荐
相关产品推荐

