擅长:python、mysql、java
<pre><code>def percentile(N, percent, key=lambda x:x):
"""
Find the percentile of a list of values.
@parameter N - is a list of values. Note N MUST BE already sorted.
@parameter percent - a float value from 0.0 to 1.0.
@parameter key - optional key function to compute value from each element of N.
@return - the percentile of the values
"""
if not N:
return None
k = (len(N)-1) * percent
f = math.floor(k)
c = math.ceil(k)
if f == c:
return key(N[int(k)])
d0 = key(N[int(f)]) * (c-k)
d1 = key(N[int(c)]) * (k-f)
return d0+d1
</code></pre>
<p>使用上述函数,通过提供已排序的标记列表来计算百分位值。然后根据百分位值过滤字典。在</p>
<p>上述函数的灵感来自<a href="http://code.activestate.com/recipes/511478-finding-the-percentile-of-the-values/" rel="nofollow noreferrer">http://code.activestate.com/recipes/511478-finding-the-percentile-of-the-values/</a></p>