2024-06-26 13:25:30 发布
网友
如何使用字典理解来获得学生的平均分数
co_dct = {"Juan":[90,85,98], "Lana":[94,80,100], "Alicia":[100,90], "Sam":[]} co_dct = d/d[] for d in co_dct print(co_dct)
作为词典理解:
>>> co_dct = {"Juan":[90,85,98], "Lana":[94,80,100], "Alicia":[100,90], "Sam":[]} >>> {k: sum(co_dct[k])/float(len(co_dct[k])) for k in co_dct if co_dct[k]} {'Juan': 91.0, 'Lana': 91.33333333333333, 'Alicia': 95.0}
请注意,当示例列表为空时,使用过滤器可以防止被零除的错误。这会导致丢失具有空样本的键,但这似乎是合理的,因为没有数据就无法生成平均值。你知道吗
由于您使用的是python3,另一种方法是使用statistics.mean():
statistics.mean()
>>> from statistics import mean >>> {k: mean(co_dct[k]) for k in co_dct if co_dct[k]} {'Lana': 91.33333333333333, 'Alicia': 95, 'Juan': 91}
一个小的优化可能是使用co_dct.items()来避免多个dict查找:
co_dct.items()
>>> {k: mean(values) for k, values in co_dct.items() if values}
作为词典理解:
请注意,当示例列表为空时,使用过滤器可以防止被零除的错误。这会导致丢失具有空样本的键,但这似乎是合理的,因为没有数据就无法生成平均值。你知道吗
由于您使用的是python3,另一种方法是使用
statistics.mean()
:一个小的优化可能是使用
co_dct.items()
来避免多个dict查找:相关问题 更多 >
编程相关推荐