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中的死锁、可重入锁和互斥锁
Nov 05 Python
Python获取昨天、今天、明天开始、结束时间戳的方法
Jun 01 Python
python递归实现快速排序
Aug 18 Python
Python对象中__del__方法起作用的条件详解
Nov 01 Python
Python3使用PySynth制作音乐的方法
Sep 09 Python
python 函数中的参数类型
Feb 11 Python
python中的 zip函数详解及用法举例
Feb 16 Python
ansible-playbook实现自动部署KVM及安装python3的详细教程
May 11 Python
python代码中怎么换行
Jun 17 Python
python3 googletrans超时报错问题及翻译工具优化方案 附源码
Dec 23 Python
用pushplus+python监控亚马逊到货动态推送微信
Jan 29 Python
pip install命令安装扩展库整理
Mar 02 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一句话cmdshell新型 (非一句话木马)
2009/04/18 PHP
flash用php连接数据库的代码
2011/04/21 PHP
PHP如何实现订单的延时处理详解
2017/12/30 PHP
php实现socket推送技术的示例
2017/12/20 PHP
PHP排序算法之基数排序(Radix Sort)实例详解
2018/04/21 PHP
JavaScript 加号(+)运算符号
2009/12/06 Javascript
JavaScript 学习历程和心得分享
2010/12/12 Javascript
javascript对象的使用和属性操作示例详解
2014/03/02 Javascript
js实现简单秒表走动的时钟特效
2020/03/25 Javascript
JS实现Fisheye效果动感放大菜单代码
2015/10/21 Javascript
基于JavaScript实现弹出框效果
2016/02/19 Javascript
vue.js实现表格合并示例代码
2016/11/30 Javascript
JS复制对应id的内容到粘贴板(Ctrl+C效果)
2017/01/23 Javascript
JS前端开发判断是否是手机端并跳转操作(小结)
2017/02/05 Javascript
js实现PC端根据IP定位当前城市地理位置
2017/02/22 Javascript
JQ中$(window).load和$(document).ready区别与执行顺序
2017/03/01 Javascript
微信小程序 slot踩坑的解决
2019/04/01 Javascript
vue iview的菜单组件Mune 点击不高亮的解决方案
2019/11/01 Javascript
JS校验与最终登陆界面功能完整示例
2020/01/13 Javascript
详解JavaScript之ES5的继承
2020/07/08 Javascript
python实现得到一个给定类的虚函数
2014/09/28 Python
python实现调用其他python脚本的方法
2014/10/05 Python
详解Python 4.0 预计推出的新功能
2019/07/26 Python
python opencv图片编码为h264文件的实例
2019/12/12 Python
解决keras模型保存h5文件提示无此目录问题
2020/07/01 Python
HTML5 b和i标记将被赋予真正的语义
2009/07/16 HTML / CSS
美国第一香水网站:Perfume.com
2017/01/23 全球购物
vue路由实现登录拦截
2021/03/24 Vue.js
军训自我鉴定100字
2014/02/13 职场文书
军训教官感言
2014/03/02 职场文书
护理人员的自我评价分享
2014/03/15 职场文书
2014年财务工作自我评价
2014/09/23 职场文书
社区班子个人对照检查材料思想汇报
2014/10/07 职场文书
担保书范本
2015/01/20 职场文书
创业计划书之美甲店
2019/09/20 职场文书
Win11怎么把合并的任务栏分开 Win11任务栏合并分开教程
2022/04/06 数码科技