school = [['dia', 87], ['ria', 100], ['gud', 59], ['ria', 85], ['gud', 76], ['don', 99]]
此数组包含学生及其分数(是的,有些重复的学生具有diff值)。
我想将其转换为该词典以查找平均得分:
school_dict = { dia:[87], ria:[100,85], gud:[59,76], don:[99] }
让我知道是否有人可以为我解决这个问题。
答案 0 :(得分:2)
res = {}
for x in school:
res.setdefault(x[0],[]).append(x[1])
print(res)
输出
{'dia': [87], 'ria': [100, 85], 'gud': [59, 76], 'don': [99]}
答案 1 :(得分:1)
从性能的角度来看,defaultdict比dict.setdefault()快,因此您也可以使用它:
from collections import defaultdict
school = [['dia', 87], ['ria', 100], ['gud', 59], ['ria', 85], ['gud', 76], ['don', 99]]
d = defaultdict(list)
for s in school:
d[s[0]].append(s[1])
print(dict(d))
输出:
{'dia':[87],'ria':[100,85],'gud':[59,76],'don':[99]}
请遵循以下步骤:setdefault vs defaultdict performance用于与性能相关的讨论。