Python 4.7:如何计算数组中特定值的频率

时间:2017-11-15 20:53:33

标签: python numpy

基本上我有一个包含250个元素的列表,其中一些是1个2和3个。我如何得到一个代表'1'的变量?

2 个答案:

答案 0 :(得分:4)

我认为在python 4.7

中仍然会出现这种情况

除了笑话,这将在Python 2.7(和3等)中起作用

使用count():

your_list = [1,1,2,3,4,5,6,7,8]
distinct_values = set(your_list)
if len(distinct_values) == len(your_list)
    print('All values have a tf count of 1')
else:
    for distinct_value in distinct_values:
        print('%s n occurences: %s' % (distinct_value, str(your_list.count(distinct_value))))

使用in(@nfn neil通过评论提供的解决方案):

your_list = [1,1,2,3,4,5,6,7,8]
di = {}
for item in your_list:
    if item in di:
        di[item] += 1
    else:
        di[item] = 1
print(di)

基准测试运行两种变体300次,列出50万项:

using_in的运行时需要18.3120000362秒才能完成

using_count的运行时间需要743.9941547110秒才能完成

基准代码:

https://pastebin.com/dWS8UH7c

答案 1 :(得分:4)

这本身就存在于Python

from collections import Counter

A = [1,1,1,1,1,2,2,2,3,3,3,3,3,4,4,4,4]
B = Counter(A)

输出Counter({1: 5, 3: 5, 4: 4, 2: 3})