【发布时间】:2017-09-21 17:49:56
【问题描述】:
我有一长串 x = [4,6,7,8,8,8,9,0,9,1,7,7] 我知道我可以使用计数器来查看一个项目出现了多少次。
x = [4,6,7,8,8,8,9,0,9,1,7,7]
from collections import Counter
Counter(x)
>>Counter({0: 1, 1: 1, 4: 1, 6: 1, 7: 3, 8: 3, 9: 2})
我可以使用:
Counter(x).most_common()
>>Counter(x).most_common()
Out[33]: [(7, 3), (8, 3), (9, 2), (0, 1), (1, 1), (4, 1), (6, 1)]
现在,我想知道我需要多少元素才能覆盖 50% 的列表。比如 7 和 8 出现 6 次,有 12 个元素,所以我只需要 7 和 8 就可以覆盖列表中 50% 的元素。如果我加 9,我有 8 个元素,所以 7、8 和 9 覆盖了列表中 66% 的元素。
如果我的列表有数十万个元素,我该怎么做?
【问题讨论】:
-
您想用最少个不同元素覆盖列表中的
50%吗? -
@JoeIddon 是的,这就是我想要的,或者任何百分比