#### 某随机序列```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)) ```