好吧,让我们遍历所有的字典键并平均这些项:avgDict = {}
for k,v in StudentGrades.iteritems():
# v is the list of grades for student k
avgDict[k] = sum(v)/ float(len(v))
现在你可以看到:avgDict
Out[5]:
{'Ivan': 3.106666666666667,
'Martin': 4.816666666666666,
'Stoyan': 3.89,
'Vladimir': 5.433333333333334}
从你的问题来看,我认为你对dicts上的迭代感到不安,所以这里的输出和列表一样:avgList = []
for k,v in StudentGrades.iteritems():
# v is the list of grades for student k
avgDict.append(sum(v)/ float(len(v)))
但是要小心:字典中的项顺序是不保证;这就是说,在字典上打印或迭代时键/值的顺序是不保证的(因为dict是“未排序的”)。
但是,在同一个dictionary对象上循环两次(没有添加/删除)的行为是相同的。