Python如何迭代嵌套字典与列表并单次输出单条学生记录
无需自定义函数的Python实现方案
完整可运行代码
# 接收每名学生需提取的成绩数量,做基础输入校验 while True: try: score_count = int(input("请输入每名学生需提取的成绩数量:")) if score_count > 0: break print("请输入大于0的正整数") except ValueError: print("输入格式错误,请输入有效数字") # 示例学生数据源,可替换为实际业务中的数据源(如读取自Excel、CSV的数据集) student_list = [ {"姓名": "张三", "学号": "2023001", "成绩": [89, 92, 78, 95, 88]}, {"姓名": "李四", "学号": "2023002", "成绩": [76, 85, 91, 82, 79]}, {"姓名": "王五", "学号": "2023003", "成绩": [93, 81, 87, 90, 94]}, {"姓名": "赵六", "学号": "2023004", "成绩": [84, 77, 83, 72, 80]}, {"姓名": "孙七", "学号": "2023005", "成绩": [91, 93, 89, 96, 92]} ] # 存储所有已展示的学生数据,用于最终汇总 showed_records = [] # 逐条输出逻辑 for student in student_list: # 提取指定数量的成绩 target_scores = student["成绩"][:score_count] # 拼接单条学生展示信息 current_info = f"姓名:{student['姓名']} | 学号:{student['学号']} | 前{score_count}门成绩:{target_scores}" # 输出单条信息 print("\n当前学生信息:") print(current_info) # 存入已展示列表 showed_records.append(current_info) # 询问用户是否继续 choice = input("\n是否查看下一条?输入n/停止/stop即可终止,其他输入默认继续:").strip().lower() if choice in ["n", "stop", "停止"]: break # 汇总输出所有已展示数据 print("\n" + "="*40) print("已展示学生数据汇总:") for record in showed_records: print(f"- {record}")
逻辑说明
- 全程无自定义函数,完全符合需求约束
- 自带输入校验,避免非数字、负数输入导致的程序报错
- 学生数据源可直接替换为实际业务数据,只需对应修改信息拼接部分的字段即可适配
- 终止触发词可根据使用习惯自行修改判断条件中的匹配列表
内容的提问来源于stack exchange,提问作者TeeToe
相关产品推荐
相关产品推荐

