您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python cookbook(数据结构与算法)找出序列中出现次数最多的元素算法示例

5b51 2022/1/14 8:15:06 python 字数 4773 阅读 292 来源 www.jb51.cc/python

本文实例讲述了Python找出序列中出现次数最多的元素。分享给大家供大家参考,具体如下:

概述

本文实例讲述了Python找出序列中出现次数最多的元素。分享给大家供大家参考,具体如下:

问题:找出一个元素序列中出现次数最多的元素是什么

解决方案:collections模块中的Counter类正是为此类问题所设计的。它的一个非常方便的most_common()方法直接告诉你答案。

# Determine the most common words in a list
words = [
  'look','into','my','eyes','look','the','not','around',"don't","you're",'under'
]
from collections import Counter
word_counts = Counter(words)
top_three = word_counts.most_common(3)
print(top_three)
# outputs [('eyes',8),('the',5),('look',4)]
# Example of merging in more words
morewords = ['why','are','you','looking','in','eyes']
word_counts.update(morewords) #使用update()增加计数
print(word_counts.most_common(3))

>>> ================================ RESTART ================================
>>>
[('eyes',4)]
[('eyes',9),('my',4)]
>>>

在底层实现中,Counter是一个字典,在元素和它们出现的次数间做了映射。

>>> word_counts
Counter({'eyes': 9,'the': 5,'my': 4,'look': 4,'into': 3,'around': 2,'not': 2,"don't": 1,'under': 1,'are': 1,'looking': 1,"you're": 1,'you': 1,'why': 1,'in': 1})
>>> word_counts.most_common(3) #top_three
[('eyes',4)]
>>> word_counts['not']
2
>>> word_counts['eyes']
9
>>> word_counts['eyes']+1
10
>>> word_counts
Counter({'eyes': 9,'in': 1})
>>> word_counts['eyes']=word_counts['eyes']+1 #手动增加元素计数
>>> word_counts
Counter({'eyes': 10,'in': 1})
>>>

增加元素出现次数可以通过手动进行增加,也可以借助update()方法

另外,Counter对象另一个特性是它们可以同各种数学运算操作结合起来使用:

>>> a=Counter(words)
>>> a
Counter({'eyes': 8,'my': 3,'not': 1,"don't": 1})
>>> b=Counter(morewords)
>>> b
Counter({'not': 1,'my': 1,'in': 1,'eyes': 1,'why': 1})
>>> c=a+b
>>> c
Counter({'eyes': 9,'why': 1})
>>> # substract counts
>>> d=a-b
>>> d
Counter({'eyes': 7,'my': 2,"don't": 1})
>>>

当面对任何需要对数据制表或计数的问题时,Counter对象都是你手边的得力工具。比起利用字典自己手写算法,更应采用该方式完成任务。

代码摘自《Python Cookbook》)

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总

希望本文所述对大家Python程序设计有所帮助。

总结

以上是编程之家为你收集整理的Python cookbook(数据结构与算法)找出序列中出现次数最多的元素算法示例全部内容,希望文章能够帮你解决Python cookbook(数据结构与算法)找出序列中出现次数最多的元素算法示例所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶