假设我有一个列表,我如何编写一个优雅的语句来计算列表中少数类的百分比?
例如,对于 list1 = [1,1,1,-1,-1]
,少数类为 -1
。列表中 -1
的百分比将为 2/5=0.4
对于另一个列表list2 = [1,-1,-1,-1,-1]
,少数类是1
。列表中 1
的百分比将为 1/5=0.2
最佳答案
import collections
list1 = [1,1,1,-1,-1]
p = min(collections.Counter(list1).values())*1.0/len(list1)
print(p)
# Output
0.4
<小时/>
collections.Counter(list1)
返回一个带有 key:value 对 element:Frequency
的字典。在本例中,它将是 Counter({1: 3, -1: 2})
。
关于Python-获取列表中少数类的百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37219580/