python - 在字典中按升序保存每个人名字的平均值
问题描述
如何按照字典中人名的平均分数向上的顺序保存每个人的平均值?
最后,将前 3 个高点保存在名为 top 的列表中?
import csv
from statistics import mean
with open('grades.csv') as f:
reader = csv.reader(f)
for row in reader:
#print(row)
name = row[0]
grades = []
for grade in row[1:]:
grades.append(int(grade))
print('Average of %s --> %f' % (name, mean(grades)))
解决方案
这是我的例子,这是你想要的吗?
from statistics import mean
items = [
['John', 1,2,3,5,21,2,3,2,1,2,5],
['Alice', 5,31,6,73,4,2,1],
['Bill', 7,4,6,78,3,1,2,21],
['Sarah', 2,3,5,6,4,7,7],
['Martin', 2,4,6,3,8,2,3,3],
]
some_dict = {}
for row in items:
name = row[0]
grades = list(map(int, row[1:]))
print('Average of %s --> %f' % (name, mean(grades)))
some_dict.update({name: {'grades': grades, 'mean': mean(grades)}})
print(some_dict)
print(sorted(some_dict.items()))
输出:
Average of John --> 4.272727
Average of Alice --> 17.428571
Average of Bill --> 15.250000
Average of Sarah --> 4.857143
Average of Martin --> 3.875000
{'John': {'grades': [1, 2, 3, 5, 21, 2, 3, 2, 1, 2, 5], 'mean': 4.2727272727272725}, 'Alice': {'grades': [5, 31, 6, 73, 4, 2, 1], 'mean': 17.428571428571427}, 'Bill': {'grades': [7, 4, 6, 78, 3, 1, 2, 21], 'mean': 15.25}, 'Sarah': {'grades': [2, 3, 5, 6, 4, 7, 7], 'mean': 4.857142857142857}, 'Martin': {'grades': [2, 4, 6, 3, 8, 2, 3, 3], 'mean': 3.875}}
[('Alice', {'grades': [5, 31, 6, 73, 4, 2, 1], 'mean': 17.428571428571427}), ('Bill', {'grades': [7, 4, 6, 78, 3, 1, 2, 21], 'mean': 15.25}), ('John', {'grades': [1, 2, 3, 5, 21, 2, 3, 2, 1, 2, 5], 'mean': 4.2727272727272725}), ('Martin', {'grades': [2, 4, 6, 3, 8, 2, 3, 3], 'mean': 3.875}), ('Sarah', {'grades': [2, 3, 5, 6, 4, 7, 7], 'mean': 4.857142857142857})]
推荐阅读
- c - 在 C 中使用按位与隔离位
- spring-boot - 如何在 SpringBoot 中更改 Keep-Alive 超时值
- typescript - 在涉及声明合并的重载函数中键入“this”参数?
- python - 检查 foo = {'foo':1,'zip':2,'zam':3,'bar':4} 的负载因子
- jquery - Bootstrap轮播最后一项将隐藏右键控件
- swift - 父 UIView 未显示,但子视图在 nswift 中显示
- csv - 在 netlogo 中模型运行期间重复读取 csv 文件
- assembly - popl $xxxx 和 popl 寄存器的区别
- python - 在整数的大整数文件中查找中位数
- python-3.x - time complexity for check if string has only unique chars