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 相关文章推荐
Python urllib模块urlopen()与urlretrieve()详解
Nov 01 Python
基于python(urlparse)模板的使用方法总结
Oct 13 Python
在Python中实现替换字符串中的子串的示例
Oct 31 Python
如何在django里上传csv文件并进行入库处理的方法
Jan 02 Python
浅析Python 读取图像文件的性能对比
Mar 07 Python
Python通用函数实现数组计算的方法
Jun 13 Python
python爬虫 爬取58同城上所有城市的租房信息详解
Jul 30 Python
python飞机大战 pygame游戏创建快速入门详解
Dec 17 Python
解决Jupyter无法导入已安装的 module问题
Apr 17 Python
keras使用Sequence类调用大规模数据集进行训练的实现
Jun 22 Python
python中查看.db文件中表格的名字及表格中的字段操作
Jul 07 Python
OpenCV利用python来实现图像的直方图均衡化
Oct 21 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
header()函数使用说明
2006/11/23 PHP
PHP合并两个数组的两种方式的异同
2012/09/14 PHP
php头像上传预览实例代码
2017/05/02 PHP
safari下载文件自动加了html后缀问题
2018/11/09 PHP
Discuz不使用插件实现简单的打赏功能
2019/03/21 PHP
Apache+PHP+MySQL搭建PHP开发环境图文教程
2020/08/06 PHP
Javascript调试工具(下载)
2007/01/09 Javascript
JScript中的undefined和&quot;undefined&quot;的区别
2007/03/08 Javascript
node.js中的http.response.setHeader方法使用说明
2014/12/14 Javascript
jquery实现图片水平滚动效果代码分享
2015/08/26 Javascript
bootstrap-wysiwyg结合ajax实现图片上传实时刷新功能
2016/05/27 Javascript
Node.js Addons翻译(C/C++扩展)
2016/06/12 Javascript
详解微信小程序 template添加绑定事件
2017/06/23 Javascript
javascript 跨域问题以及解决办法
2017/07/17 Javascript
React Native使用百度Echarts显示图表的示例代码
2017/11/07 Javascript
基于vue中css预加载使用sass的配置方式详解
2018/03/13 Javascript
vue addRoutes实现动态权限路由菜单的示例
2018/05/15 Javascript
Vue指令指令大全
2019/02/09 Javascript
jQuery+css实现的点击图片放大缩小预览功能示例【图片预览 查看大图】
2020/05/29 jQuery
python查询mysql中文乱码问题
2014/11/09 Python
详解Python import方法引入模块的实例
2017/08/02 Python
python实现图片处理和特征提取详解
2017/11/13 Python
使用Python编写Prometheus监控的方法
2018/10/15 Python
Python 获取 datax 执行结果保存到数据库的方法
2019/07/11 Python
python add_argument()用法解析
2020/01/29 Python
pycharm的python_stubs问题
2020/04/08 Python
anaconda安装pytorch1.7.1和torchvision0.8.2的方法(亲测可用)
2021/02/01 Python
2014信息公开实施方案
2014/02/22 职场文书
倡议书格式范文
2014/04/14 职场文书
大学生实习鉴定评语
2014/04/25 职场文书
机关保密承诺书
2014/06/03 职场文书
2014年重阳节老干部座谈会局领导发言稿
2014/09/25 职场文书
2014年高中班主任工作总结
2014/11/08 职场文书
检讨书范文300字
2015/01/28 职场文书
浅谈JavaScript浅拷贝和深拷贝
2021/11/07 Javascript
解决Git推送错误non-fast-forward的方法
2022/06/25 Servers