列表中的百分比

时间:2019-11-27 11:26:53

标签: python list function lambda percentage

我有一个包含测验分数的列表

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。

到目前为止,这就是我的代码,我不知道下一步该怎么做

enter image description here

答案应如下所示:

潜在最高分:89.285714%

2 个答案:

答案 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