#### 某随机序列```list_x = [2, 3, 4, 6, 6, 7, 3, 2, 8, 3, 6]```中,找到出现次数最高的3个元素,他们出现的次数是多少?
>1. 使用collections.Counter对象
>2. 将序列传入Counter的构造器,得到Counter对象是元素频度的字典,Counter.mist_common(n)方法得到频度最高的n个元素的列表
##### 使用方法
```python
from collections import Counter
list_x = [2, 3, 4, 6, 6, 7, 3, 2, 8, 3, 6]
c = Counter(list_x)
# 得到出现频度最高的3个元素
result = c.most_common(3)
print(c)
print(result)
---------------------------------------------------------------
输出:
Counter({3: 3, 6: 3, 2: 2, 4: 1, 7: 1, 8: 1})
[(3, 3), (6, 3), (2, 2)]
```
解释一下```print(c)```得到的是`Counter`对象:里面是一个字典类型,里面对应的关系是:列表```list_x```中的元素对应出现了几次。```3```出现了`3`次,`6`出现了`3`次,`2`出现了`2`次,依次对应的关系。```{元素:出现的次数}```
而,```c.most_common(3)```传入的参数3的意思是:取出`Counter`中字典的前`3`个,也就是出现次数最大的前`3`个。不难看出,列表`list_x`中出现次数最多的也就是`3`、`6`和`2`,各出现了3次,3次,2次。
#### 对某英文文章的单词,进行词频统计,找到出现次数最高的10个单词,还要知道它们出现的次数又是多少。
就可以借用上面这个方法,还需要使用正则得到以单词作为元素组成的列表。
```pyhton
import re
from collections import Counter
# 把text.txt里面的内容作为字符串读取出来。
txt = open('test.txt').read()
# 以非单词字符分割 txt。就得出了一个很大的列表,列表中每个元素也就是一个个单词。
c3 = Counter(re.split('\W+',txt))
# 找出出现频次最高的10个元素
print(c3.most_common(10))
```
- Python安装虚拟环境
- 使用pipenv来创建虚拟环境
- pipenv常用命令
- Python字典,列表,集合高阶操作
- 在列表,字典,集合中根据条件来筛选数据
- 为元组中的每个元素命名
- 统计序列中元素的出现频度
- 根据字典中值得大小,对字典中的项排序
- 让字典保持有序
- 快速找到多个字典中的公共键(key)
- 实现保存用户的历史记录功能
- 正向迭代和反向迭代
- 对迭代器做切片操作
- 在一个for语句中迭代多个可迭代对象
- Python字符串的高阶操作
- 拆分含有多种分隔符的字符串
- 如何判断字符串a是否以字符串b开头或结尾
- 将多个小字符拼接成一个大的字符串
- Redis
- Redis(一)
- redis简介
- Redis安装配置
- Redis(二)
- Redis通用命令
- 字符串
- hash
- list
- set
- zset
- Redis其他功能(三)
- 慢查询
- pipeline
- 发布订阅
- Bitmap
- HyperLogLog
- GEO
- Redis持久化
- RDB