您的位置:

Python集合模块collections.counter的详细介绍

一、基础介绍

Python集合模块collections.counter是Python的内置模块之一,可以方便地统计字符出现的次数。首先我们需要导入collections模块。

import collections

获取字符串s中各字符出现的次数,可以使用下面一行代码:

result = collections.Counter(s)

其中result是一个字典,key为各字符,value为出现的次数。

二、排序

我们可以使用sorted函数对result进行排序,可以按照字符出现的次数降序排列。

sorted_result = sorted(result.items(), key=lambda x: -x[1])

其中sorted_result是一个list,list中的每个元素也是一个tuple,tuple的第一个元素为字符,第二个元素为出现的次数。-x[1]表示按照第二个元素降序排序。

三、堆栈

collections.counter还可以用在堆栈中,可以方便地获取堆栈中最常用的元素。

四、元素为0的不显示

在使用collections.counter进行计数时,如果某个元素的数量为0,那么它将不会显示在counter的输出中。

s = 'abcc'
count = collections.Counter(s)
count['d'] = 0
print(count)

输出结果为:

Counter({'c': 2, 'a': 1, 'b': 1})

五、使用collections.counter统计单词出现的次数

使用collections.counter统计单词出现的次数,可以先将字符串分割成单词,然后统计每个单词出现的次数。

s = 'This is a test string. This string is used for testing.'
words = s.split()
word_count = collections.Counter(words)
sorted_word_count = sorted(word_count.items(), key=lambda x: -x[1])
print(sorted_word_count)

输出结果为:

[('This', 2), ('is', 2), ('string', 2), ('a', 1), ('test', 1), ('used', 1), ('for', 1), ('testing.', 1)]