Python 3.4 - 如何获得字典值的平均值?

Vla*_*mov 0 python dictionary average python-3.x

我有以下字典:

StudentGrades = {
    'Ivan': [4.32, 3, 2],
    'Martin': [3.45, 5, 6],
    'Stoyan': [2, 5.67, 4],
    'Vladimir': [5.63, 4.67, 6]
}
Run Code Online (Sandbox Code Playgroud)

我想创建一个函数来打印学生成绩的平均值,即值的平均值,但我不知道如何.你能帮我吗?

Jib*_*iby 9

好吧,让我们迭代所有字典键并平均项目:

avgDict = {}
for k,v in StudentGrades.iteritems():
    # v is the list of grades for student k
    avgDict[k] = sum(v)/ float(len(v))
Run Code Online (Sandbox Code Playgroud)

现在你可以看到:

avgDict
Out[5]: 
{'Ivan': 3.106666666666667,
 'Martin': 4.816666666666666,
 'Stoyan': 3.89,
 'Vladimir': 5.433333333333334}
Run Code Online (Sandbox Code Playgroud)

从你的问题我觉得你对迭代而不是dicts感到不安,所以输出作为列表也是如此:

avgList = []
for k,v in StudentGrades.iteritems():
    # v is the list of grades for student k
    avgDict.append(sum(v)/ float(len(v)))
Run Code Online (Sandbox Code Playgroud)

但请注意:字典中的项目顺序不保证 ; 也就是说,不保证在字典上打印或迭代时键/值的顺序(因为词语是"未排序的").两次相同的字典对象(没有添加/删除)循环保证表现相同.