test_grades= [[['peter', 'parker'], [80.0, 70.0, 85.0]], [['bruce', 'wayne'], [100.0, 80.0, 74.0]]] # new_stats= [[['peter', 'parker'], [80.0, 70.0, 85.0], 78.33333], # [['bruce', 'wayne'], [100.0, 80.0, 74.0], 84.666667]]] def avg(grades): return sum(grades)/len(grades) def get_stats(class_list): new_stats= [] for elt in class_list: new_stats.append([elt[0], elt[1], avg(elt[1])]) return new_stats ##### 为上面代码增加例外处理功能,使得能应对下面的数据: test_grades= [[['peter', 'parker'], [10.0, 5.0, 85.0]], [['bruce', 'wayne'], [10.0, 8.0, 74.0]], [['captain', 'america'], [8.0,10.0,96.0]], [['deadpool'], []]] ###### 并输出如下结果: new_stats=[[['peter', 'parker'], [10.0, 5.0, 85.0], 15.41666666], [['bruce', 'wayne'], [10.0, 8.0, 74.0], 13.83333334], [['captain', 'america'], [8.0, 10.0, 96.0], 17.5], [['deadpool'], [], 0.0]]
时间: 2023-08-18 18:22:45 浏览: 270
以下是增加例外处理功能的代码实现:
```python
def avg(grades):
if len(grades) == 0:
return 0.0
else:
return sum(grades)/len(grades)
def get_stats(class_list):
new_stats = []
for elt in class_list:
if len(elt[1]) == 0:
new_stats.append([elt[0], [], 0.0])
else:
new_stats.append([elt[0], elt[1], avg(elt[1])])
return new_stats
# 测试代码
test_grades = [[['peter', 'parker'], [10.0, 5.0, 85.0]],
[['bruce', 'wayne'], [10.0, 8.0, 74.0]],
[['captain', 'america'], [8.0, 10.0, 96.0]],
[['deadpool'], []]]
new_stats = get_stats(test_grades)
print(new_stats)
```
输出结果为:
```
[[['peter', 'parker'], [10.0, 5.0, 85.0], 33.333333333333336],
[['bruce', 'wayne'], [10.0, 8.0, 74.0], 30.666666666666668],
[['captain', 'america'], [8.0, 10.0, 96.0], 38.0],
[['deadpool'], [], 0.0]]
```
可以看到,对于空列表的情况,我们将其平均值设置为 0.0,并且将空列表也加入到了 new_stats 中。
阅读全文