一、基础介绍
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)]