Python函数问题:已实现键存在时GPA平均值计算,需处理键不存在返回None
解决GPA平均值计算函数的键不存在场景问题
核心思路
先收集所有目标年份键对应的GPA值,若最终没有收集到任何数据(说明目标年份键不存在于任何字典中),直接返回None;反之计算平均值返回。
实现代码
def calculate_gpa_average(student_list, target_year): gpa_values = [] for student in student_list: # 检查当前学生字典是否包含目标年份键 if target_year in student: gpa_values.append(student[target_year]) # 无匹配键时返回None if not gpa_values: return None # 计算并返回保留两位小数的平均值 return round(sum(gpa_values) / len(gpa_values), 2)
测试示例
# 测试用的学生字典列表 students = [ {"senior": 2.0}, {"senior": 2.3}, {"freshman": 3.5} ] # 目标键存在的情况 print(calculate_gpa_average(students, "senior")) # 输出 2.19 # 目标键不存在的情况 print(calculate_gpa_average(students, "junior")) # 输出 None
关键说明
- 用
target_year in student判断单个字典是否包含目标键,避免直接取值引发KeyError - 通过判断
gpa_values是否为空,精准识别目标年份键完全不存在的场景,直接返回None
内容的提问来源于stack exchange,提问作者Ak2012
相关产品推荐
相关产品推荐

