【发布时间】:2021-09-22 09:43:09
【问题描述】:
我想使用collections.Counter 在列表中查找频繁值。这是一个示例列表:
from collections import Counter
lastNodes = ['138885662','192562407','192562407','138885662','121332964','185592680','144024400','144024400','144024400','138885662']
c = Counter(lastNodes)
print(c)的输出:
Counter({'121332964': 1,
'138885662': 3,
'144024400': 3,
'185592680': 1,
'192562407': 2})
我使用c.most_common(1) 得到最频繁的值,输出[('138885662', 3)]。
但我想获得在列表中重复 3 次的值。所需的输出:
[('138885662', 3), ('144024400', 3)]
如果我想要那些具有 3 和 2 个重复值的值怎么办:
[('138885662', 3), ('144024400', 3), ('192562407', 2)]
当然,这是一个示例列表。我有一个生成动态列表的算法。所以我不知道每个列表中存在多少最常见的值
【问题讨论】:
-
Counter类从何而来? -
如果您省略
most_common的参数,它将返回所有 个计数的排序列表。这可能是最好的事情。您需要决定要使用多少个条目。 -
@jemand771 它是
collections的一部分,collections是一个标准 Python 库。
标签: python arrays list sorting