问题
怎样找出一个序列中出现次数最多的元素?
解决
好吧,又是collections库...附一篇廖雪峰老师总结的python中collections库的说明https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001411031239400f7181f65f33a4623bc42276a605debf6000.使用collections
库中的Counter
对象可以方便的求出现次数最多的前N个元素
直接使用most_common
成员函数就好了,例如:
总结:
Counter
对象是dict
的子类,事实上内部存储也是按照k-v字典存储的,这里的v就是次数,所以Counter
对象支持dict
对象的所有操作
1.每一个Counter
对象初始化可以接受可迭代对象(iterable)、字典、关键字参数
2.Counter
对象还支持数学操作
注:
c & d # intersection: min(c[x], d[x]
c | d # union: max(c[x], d[x])
# 下面的例子说明了创建Counter的四种方法
c = Counter() # 可以创建一个空的Counter类
c = Counter('gallahad') # 可以从一个可迭代literal类(list ,tuple ,dict,字符串)创建
c = Counter({'red': 4, 'blue': 2}) # 可以创建一个字典
c = Counter(cats=4, dogs=8) # 可以从一组值键中创建
附一篇counter的详细解释:http://www.pythoner.com/205.html