python中set中多项的字典理解

2024-06-26 13:25:30 发布

您现在位置:Python中文网/ 问答频道 /正文

如何使用字典理解来获得学生的平均分数

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)

Tags: infor字典sam学生分数dctjuan
1条回答
网友
1楼 · 发布于 2024-06-26 13:25:30

作为词典理解:

>>> 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()

>>> 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查找:

>>> {k: mean(values) for k, values in co_dct.items() if values}

相关问题 更多 >