列表中的百分比
Percent from a list
我有一个包含测试分数的列表
points= [0,0,0,0,0,0,8,8,8,9,10,11,11,12,12,13,14,14,15,15,16,
16,17,17, 18, 19,21,21,23, 23, 24, 24, 24, 25,25, 25,
26, 27, 27, 28, 29, 29, 29, 29, 30, 30, 30, 31,31, 32,
34, 35, 36, 36, 37, 38]
如果我们假设所有参与者在接下来的两次测试中都获得满分(总共80分,每次测试40分),那么还有多少百分比的参与者可以达到“A”的分数。该函数应 return 百分比,在数学意义上介于 0 和 1 之间。
88分以上可以拿A。
这就是我的代码,我不知道下一步该做什么
答案应该是这样的:
潜在最高分:89.285714%
使用这个:
没有numpy:
potential = [p + 80 for p in points]
percentage = sum([1 for i in potential if i>=88]) / float(len(potential)) * 100
89.28571428571429
使用numpy
:
import numpy as np
potential = [p + 80 for p in points]
percentage = sum(np.array(potential)>=88) / float(len(potential)) * 100
89.28571428571429
这是一个没有 numpy 的简单解决方案:
sum( i +80 >= 88 for i in points )/len(points)*100
这个returns(在Python 3):
89.28571428571429
编辑:由 h4z3s 提示简化。
我有一个包含测试分数的列表
points= [0,0,0,0,0,0,8,8,8,9,10,11,11,12,12,13,14,14,15,15,16,
16,17,17, 18, 19,21,21,23, 23, 24, 24, 24, 25,25, 25,
26, 27, 27, 28, 29, 29, 29, 29, 30, 30, 30, 31,31, 32,
34, 35, 36, 36, 37, 38]
如果我们假设所有参与者在接下来的两次测试中都获得满分(总共80分,每次测试40分),那么还有多少百分比的参与者可以达到“A”的分数。该函数应 return 百分比,在数学意义上介于 0 和 1 之间。 88分以上可以拿A。
这就是我的代码,我不知道下一步该做什么
答案应该是这样的:
潜在最高分:89.285714%
使用这个:
没有numpy:
potential = [p + 80 for p in points]
percentage = sum([1 for i in potential if i>=88]) / float(len(potential)) * 100
89.28571428571429
使用numpy
:
import numpy as np
potential = [p + 80 for p in points]
percentage = sum(np.array(potential)>=88) / float(len(potential)) * 100
89.28571428571429
这是一个没有 numpy 的简单解决方案:
sum( i +80 >= 88 for i in points )/len(points)*100
这个returns(在Python 3):
89.28571428571429
编辑:由 h4z3s 提示简化。