Python 数据结构综合实战:学生成绩管理系统构建

34 阅读2分钟

介绍

在 Python 编程中,熟练掌握列表、元组、集合和字典等数据结构是处理实际数据的基础。本文将围绕一个学生成绩管理系统的构建,演示如何综合运用多种数据结构进行数据的初始化、增删改查、统计分析等操作,展示 Python 在数据处理方面的灵活性与高效性。

案例:学生成绩管理系统的数据结构操作

代码:

# 初始化数据结构
students = ['Alice', 'Bob', 'Charlie']
courses = ('Math', 'Science', 'History')
grades = {'A', 'B', 'C', 'D', 'F'}
student_grades = {
    'Alice': {'Math': 'A', 'Science': 'B', 'History': 'C'},
    'Bob': {'Math': 'B', 'Science': 'C', 'History': 'D'},
    'Charlie': {'Math': 'A', 'Science': 'A', 'History': 'B'}
}

# 添加新学生
students.append('David')
student_grades['David'] = {'Math': 'C', 'Science': 'D', 'History': 'F'}

# 修改成绩
student_grades['Alice']['Science'] = 'A'
student_grades['Bob']['History'] = 'C'

# 查询操作
charlie_grades = student_grades['Charlie']
bob_math_grade = student_grades['Bob']['Math']

# 统计分析
math_grades = {student_grades[student]['Math'] for student in student_grades}
all_unique_grades = set()
for student in student_grades:
    all_unique_grades.update(student_grades[student].values())

# 删除操作
students.remove('David')
del student_grades['David']

# 打印结果
print("Final Students List:", students)
print("Final Student Grades Dictionary:", student_grades)
print("Updated Grades Set:", grades.union(all_unique_grades))

运行结果:

2.png

代码分析:

  • 数据结构初始化

    • students:列表,存储学生姓名,支持动态增删。
    • courses:元组,存储固定课程,不可更改。
    • grades:集合,存储唯一成绩等级。
    • student_grades:嵌套字典,外层键为学生,内层为课程-成绩映射。
  • 数据操作流程

    1. 添加:使用 append() 和字典赋值添加新学生及其成绩。
    2. 修改:通过键直接修改嵌套字典中的成绩。
    3. 查询:使用键快速检索学生成绩。
    4. 统计:利用集合推导式提取数学成绩集合,遍历更新总成绩集合。
    5. 删除:使用 remove()del 删除学生记录。
  • 集合操作union() 方法合并两个集合,自动去重,体现集合的唯一性特性。


总结

本文通过一个完整的学生成绩管理系统案例,系统展示了 Python 中列表、元组、集合和字典的实际应用。这些数据结构各具特点:

  • 列表:适用于顺序存储、频繁增删的场景。
  • 元组:适用于存储不可变数据,如固定课程。
  • 集合:适用于去重和集合运算。
  • 字典:适用于键值对映射,特别是嵌套结构表示复杂关系。