Python找出列表中出现次数最多的元素三种方式


Posted in Python onFebruary 24, 2020

通过三种方式给大家介绍,具体详情如下所示:

方式一:

原理:创建一个新的空字典,用循环的方式来获取列表中的每一个元素,判断获取的元素是否存在字典中的key,如果不存在的话,将元素作为key,值为列表中元素的count

# 字典方法
words = [
 'my', 'skills', 'are', 'poor', 'I', 'am', 'poor', 'I',
 'need', 'skills', 'more', 'my', 'ability', 'are',
 'so', 'poor'
]
dict1 = {}
for i in words:
 if i not in dict1.keys():
  dict1[i] = words.count(i)
print(dict1)

运行结果:

{'my': 2, 'skills': 2, 'are': 2, 'poor': 3, 'I': 2, 'am': 1, 'need': 1, 'more': 1, 'ability': 1, 'so': 1}

方式二

原理:使用setdefault函数,setdefault()函数,如果键不存在于字典中,将会添加键并将值设为默认值。
打个比方,我们要查找的这个键不在字典中,我们先将它置为0,然后再加1,再查找到这个键的时候,这个时候它是存在这个字典里面的,故这个setdefault函数不生效,然后我们再把次数加1

words = [
 'my', 'skills', 'are', 'poor', 'I', 'am', 'poor', 'I',
 'need', 'skills', 'more', 'my', 'ability', 'are',
 'so', 'poor'
]
d = dict()
for item in words:
 # setdefault()函数,如果键不存在于字典中,将会添加键并将值设为默认值
 d[item] = d.setdefault(item, 0) + 1
print(d)

运行结果:

{'my': 2, 'skills': 2, 'are': 2, 'poor': 3, 'I': 2, 'am': 1, 'need': 1, 'more': 1, 'ability': 1, 'so': 1}

方式三

原理:使用collections模块的Counter类
这个模块很强大,尤其是这个类。他可以直接帮我们计数,然后再帮我们排序好。从大到小

from collections import Counter
words = [
 'my', 'skills', 'are', 'poor', 'I', 'am', 'poor', 'I',
 'need', 'skills', 'more', 'my', 'ability', 'are',
 'so', 'poor'
]
collection_words = Counter(words)
print(collection_words)
print(type(collection_words))

运行结果:

Counter({'poor': 3, 'my': 2, 'skills': 2, 'are': 2, 'I': 2, 'am': 1, 'need': 1, 'more': 1, 'ability': 1, 'so': 1})
<class 'collections.Counter'>

还可以输出频率最大的n个元素,类型为list

most_counterNum = collection_words.most_common(3)
print(most_counterNum)
print(type(most_counterNum))

运行结果:

[('poor', 3), ('my', 2), ('skills', 2)]
<class 'list'>

ounter类支持collections.Counter类型的相加和相减

也就是用Counter(words)之后,这个类型是可以相加减的,只支持相加减
例子:

print(collection_words + collection_words)

这里要注意:不能为了图方便进行collection_words * 2,因为类型不同,2为int,故不能进行运算
运行结果:

Counter({'poor': 6, 'my': 4, 'skills': 4, 'are': 4, 'I': 4, 'am': 2, 'need': 2, 'more': 2, 'ability': 2, 'so': 2})

总结

到此这篇关于Python找出列表中出现次数最多的元素三种方式的文章就介绍到这了,更多相关python找出出现次数最多的元素内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
K-近邻算法的python实现代码分享
Dec 09 Python
你真的了解Python的random模块吗?
Dec 12 Python
Python实现破解12306图片验证码的方法分析
Dec 29 Python
使用pandas对矢量化数据进行替换处理的方法
Apr 11 Python
python制作抖音代码舞
Apr 07 Python
十个Python练手的实战项目,学会这些Python就基本没问题了(推荐)
Apr 26 Python
Python Selenium 之数据驱动测试的实现
Aug 01 Python
pytorch之inception_v3的实现案例
Jan 06 Python
解决Python数据可视化中文部分显示方块问题
May 16 Python
python爬取豆瓣电影排行榜(requests)的示例代码
Feb 18 Python
如何利用python和DOS获取wifi密码
Mar 31 Python
selenium.webdriver中add_argument方法常用参数表
Apr 08 Python
Python流程控制常用工具详解
Feb 24 #Python
深入浅析Python 函数注解与匿名函数
Feb 24 #Python
python数据预处理方式 :数据降维
Feb 24 #Python
python实现PCA降维的示例详解
Feb 24 #Python
Python sklearn库实现PCA教程(以鸢尾花分类为例)
Feb 24 #Python
python 线性回归分析模型检验标准--拟合优度详解
Feb 24 #Python
最小二乘法及其python实现详解
Feb 24 #Python
You might like
php中检查文件或目录是否存在的代码小结
2012/10/22 PHP
PHP闭包(Closure)使用详解
2013/05/02 PHP
编写安全 PHP应用程序的七个习惯深入分析
2013/06/08 PHP
php判断文件上传类型及过滤不安全数据的方法
2014/12/17 PHP
深入解析PHP的Yii框架中的缓存功能
2016/03/29 PHP
Thinkphp 框架扩展之类库扩展操作详解
2020/04/23 PHP
JavaScript库 开发规则
2009/01/31 Javascript
为JS扩展Array.prototype.indexOf引发的问题探讨及解决
2013/04/24 Javascript
jquery 中ajax执行的优先级
2015/06/22 Javascript
jquery实现可横向和竖向展开的动态下滑菜单效果
2015/08/24 Javascript
jQuery异步提交表单的两种方式
2016/09/13 Javascript
jQuery中$.grep() 过滤函数 数组过滤
2016/11/22 Javascript
如何在AngularJs中调用第三方插件库
2017/05/21 Javascript
angularjs中ng-bind-html的用法总结
2017/05/23 Javascript
bootstrap3中container与container_fluid外层容器的区别讲解
2017/12/04 Javascript
详解Vue中localstorage和sessionstorage的使用
2017/12/22 Javascript
nodejs 十六进制字符串型数据与btye型数据相互转换
2018/07/30 NodeJs
解决Vue+Element ui开发中碰到的IE问题
2018/09/03 Javascript
非常实用的jQuery代码段集锦【检测浏览器、滚动、复制、淡入淡出等】
2019/08/08 jQuery
laydate只显示时分 不显示秒的功能实现方法
2019/09/28 Javascript
微信小程序12行js代码自己写个滑块功能(推荐)
2020/07/15 Javascript
浅谈使用nodejs搭建web服务器的过程
2020/07/20 NodeJs
python实现的二叉树定义与遍历算法实例
2017/06/30 Python
python交互式图形编程实例(三)
2017/11/17 Python
基于numpy.random.randn()与rand()的区别详解
2018/04/17 Python
详解Python3中ceil()函数用法
2019/02/19 Python
python写入文件自动换行问题的方法
2019/07/05 Python
关于初始种子自动选取的区域生长实例(python+opencv)
2020/01/16 Python
车祸赔偿收入证明
2014/01/09 职场文书
《老王》教学反思
2014/02/23 职场文书
培训专员岗位职责
2014/02/26 职场文书
企业员工爱岗敬业演讲稿
2014/08/26 职场文书
2015年毕业生自我鉴定模板
2014/09/19 职场文书
警察群众路线对照检查材料思想汇报
2014/10/01 职场文书
父亲去世追悼词
2015/06/23 职场文书
Python爬虫之自动爬取某车之家各车销售数据
2021/06/02 Python