MST

星途 面试题库

面试题:Python函数返回值与复杂数据结构处理

假设有一个嵌套字典结构,如下: { 'group1': [ {'name': 'Alice', 'score': 85}, {'name': 'Bob', 'score': 78} ], 'group2': [ {'name': 'Charlie', 'score': 92}, {'name': 'David', 'score': 67} ] } 编写一个Python函数,该函数接受这样的字典作为参数,返回一个新字典,新字典的键是组名('group1', 'group2'等),值是对应组内所有成员的平均分数。要求处理组内成员为空的情况,返回值保留两位小数。请写出函数代码,并阐述在处理返回值时如何保证数据的准确性和格式的一致性。
10.3万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试
def calculate_average_scores(data):
    result = {}
    for group, members in data.items():
        if not members:
            result[group] = 0.00
        else:
            total_score = sum(member['score'] for member in members)
            average_score = total_score / len(members)
            result[group] = round(average_score, 2)
    return result
  1. 数据准确性
    • 在计算总分时,使用sum函数对组内成员的分数进行累加,sum函数对于数值类型的累加是精确的。
    • 在计算平均值时,使用total_score / len(members),这里除法运算保证了结果是浮点数,能精确表示平均分数。
    • 使用round函数将平均值保留到两位小数,round函数按照标准的四舍五入规则进行舍入,保证了小数位数的准确性。
  2. 格式一致性
    • 函数返回一个字典,键是组名,这与题目要求一致。
    • 值是保留两位小数的浮点数,使用round函数确保了所有组的平均分数都以相同的格式(保留两位小数)呈现。在处理组内成员为空的情况时,直接设置平均值为0.00,也保持了与其他结果相同的格式。