该程序应该计算与all_grades词典中每个键相关联的等级的两个描述性统计信息。创建一个新字典,该字典具有与all_grades相同的键,但是值是具有两个统计信息的元组。
这两个统计数据是:平均值和中位数
all_grades:具有以下键和值的成绩字典
键:字母字符串,学生的姓氏
值:非负整数(学生成绩)列表
返回:成绩统计字典(我使用的是空字典“ average_grades”)
键:字母字符串,学生的名字(与all_grades中的键相同) 值:十进制-输入参数中的平均成绩
目标:all_grades({'ann':[70,90,100],'bob':[75,95]})将返回 {'ann':( 86.6,90.0),'bob':( 85.0,85.0)}
我能够解析all_grades并获取列表的中位数和均值,但是在将键和元组附加到新列表时遇到了麻烦。
到目前为止我所拥有的:
average_grades = {}
for key, val in all_grades.items():
x = statistics.mean(val)
y = statistics.median(val)
average_grades.append(key, x, y)
print(average_grades)
答案 0 :(得分:1)
我认为你想要
average_grades = {}
for key, val in all_grades.items():
x = statistics.mean(val)
y = statistics.median(val)
average_grades[key]=[x,y]
print(average_grades)
答案 1 :(得分:0)
您可以使用dict理解。
注意:您只需要使用S
而不是average_grades.update({key: [x, y]})
,因为您还没有append
中存在的密钥。
作为一个通用示例,如果您有一些键和值,则可以在一行中使用dict理解来创建字典。
dict
您的案例中的一行dict理解如下:
dict((key, val) for key, val in zip(keys, vals))
dict((key, [statistics.mean(val), statistics.median(val)]) for key, val in all_grades.items())
输出:
keys = list('abcdef')
vals = np.arange(6).tolist()
print('keys: {}'.format(keys))
print('vals: {}'.format(vals))
d = dict((key, val) for key, val in zip(keys, vals))
print('Dict: \n{}'.format(d))
您所需要的只是使用keys: ['a', 'b', 'c', 'd', 'e', 'f']
vals: [0, 1, 2, 3, 4, 5]
Dict:
{'a': 0, 'b': 1, 'c': 2, 'd': 3, 'e': 4, 'f': 5}
而不是average_grades.update({key: [x, y]})
,因为您尚未在append
中找到密钥。
dict