面试题答案
一键面试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
- 数据准确性:
- 在计算总分时,使用
sum
函数对组内成员的分数进行累加,sum
函数对于数值类型的累加是精确的。 - 在计算平均值时,使用
total_score / len(members)
,这里除法运算保证了结果是浮点数,能精确表示平均分数。 - 使用
round
函数将平均值保留到两位小数,round
函数按照标准的四舍五入规则进行舍入,保证了小数位数的准确性。
- 在计算总分时,使用
- 格式一致性:
- 函数返回一个字典,键是组名,这与题目要求一致。
- 值是保留两位小数的浮点数,使用
round
函数确保了所有组的平均分数都以相同的格式(保留两位小数)呈现。在处理组内成员为空的情况时,直接设置平均值为0.00
,也保持了与其他结果相同的格式。