目录
1、以统计列表中的词频为例
2、寻找出现次数最多的 k 个数
刷 leetcode 时发现了可以很方便地统计词频的 Counter() 函数,有了这个函数就不用手动的使用 for 循环来手动统计词频啦!
Counter() 是 collections 库中的一个函数,可以用来统计一个 python 列表、字符串、元组等可迭代对象中每个元素出现的次数,并返回一个字典。可以看下常用的 Counter() 例子:
1、以统计列表中的词频为例
列表中含有一串整数,要统计每个数出现的次数,可以像下面这样:
from collections import Counternums = [1, 1, 1, 6, 6, 6, 7, 8]count = Counter(nums) # 统计词频for k, v in count.items(): print(k, v)print(count)"""输出:1 36 37 18 1Counter({1: 3, 6: 3, 7: 1, 8: 1})"""
2、寻找出现次数最多的 k 个数
《剑指offer 专项突破版》 第60题:出现频率最高的 k 个数字 就可以使用这种方式来解~
使用 Counter 统计完词频后可以使用most_common 方法来查找出现频率最高的 k 个数字及其出现次数。
from collections import Counternums = [1, 1, 1, 6, 6, 6, 7, 8]count = Counter(nums)ansdict = count.most_common(2) # 返回出现次数最多的两个数及其出现的次数print(ansdict) # 注意输出格式ans = []for i in range(len(ansdict)): ans.append(ansdict[i][0]) # 提取出出现次数最多的两个数print(ans)"""输出:[(1, 3), (6, 3)][1, 6]"""
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。