我有一个包含测验分数的列表
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”分。该函数应返回数学意义上的百分比,介于0和1之间。 如果您的得分超过88,则可以得到A。
到目前为止,这就是我的代码,我不知道下一步该怎么做
答案应如下所示:
潜在最高分:89.285714%
答案 0 :(得分:0)
这是一个没有numpy的简单解决方案:
sum( i +80 >= 88 for i in points )/len(points)*100
这返回(在Python 3中):
89.28571428571429
编辑:通过h4z3s技巧简化。
答案 1 :(得分:-1)
没有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