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使用urllib2获取网络资源实例讲解
Dec 02 Python
PyTorch读取Cifar数据集并显示图片的实例讲解
Jul 27 Python
Python查找数组中数值和下标相等的元素示例【二分查找】
Feb 13 Python
Python利用sqlacodegen自动生成ORM实体类示例
Jun 04 Python
详解python实现数据归一化处理的方式:(0,1)标准化
Jul 17 Python
python中从for循环延申到推导式的具体使用
Nov 29 Python
PyQT5 emit 和 connect的用法详解
Dec 13 Python
python中查看.db文件中表格的名字及表格中的字段操作
Jul 07 Python
PyCharm上安装Package的实现(以pandas为例)
Sep 18 Python
python实现银行账户系统
Feb 22 Python
python使用openpyxl库读写Excel表格的方法(增删改查操作)
May 02 Python
详解分布式系统中如何用python实现Paxos
May 18 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和ACCESS写聊天室(九)
2006/10/09 PHP
优化PHP代码的53条建议
2008/03/27 PHP
PHP对MongoDB[NoSQL]数据库的操作
2013/03/01 PHP
PHP轻量级数据库操作类Medoo增加、删除、修改、查询例子
2014/07/04 PHP
基于win2003虚拟机中apache服务器的访问
2017/08/01 PHP
firefox 和 ie 事件处理的细节,研究,再研究 书写同时兼容ie和ff的事件处理代码
2007/04/12 Javascript
通过继承IHttpHandle实现JS插件的组织与管理
2010/07/13 Javascript
解决jquery异步按一定的时间间隔刷新问题
2012/12/10 Javascript
javascript中的toFixed固定小数位数 简单实例分享
2013/07/12 Javascript
js实现鼠标悬停图片上时滚动文字说明的方法
2015/02/17 Javascript
jQuery中$.extend()用法实例
2015/06/24 Javascript
jquery分割字符串的方法
2015/06/24 Javascript
Bootstrap每天必学之级联下拉菜单
2016/03/27 Javascript
关于backbone url请求中参数带有中文存入数据库是乱码的快速解决办法
2016/06/13 Javascript
浅谈EasyUI常用控件的禁用方法
2016/11/09 Javascript
使用JavaScript为一张图片设置备选路径的方法
2017/01/04 Javascript
详解设置Webstorm 利用babel将ES6自动转码成ES5
2017/12/20 Javascript
微信小程序踩坑记录之解决tabBar.list[3].selectedIconPath大小超过40kb
2018/07/04 Javascript
JS加密插件CryptoJS实现AES加密操作示例
2018/08/16 Javascript
Vue常用API、高级API的相关总结
2021/02/02 Vue.js
Python中实现对list做减法操作介绍
2015/01/09 Python
Python对象转JSON字符串的方法
2016/04/27 Python
asyncio 的 coroutine对象 与 Future对象使用指南
2016/09/11 Python
windows下python之mysqldb模块安装方法
2017/09/07 Python
python中append实例用法总结
2019/07/30 Python
python基础教程之while循环
2019/08/14 Python
自定义实现 PyQt5 下拉复选框 ComboCheckBox的完整代码
2020/03/30 Python
python轮询机制控制led实例
2020/05/03 Python
numpy的Fancy Indexing和array比较详解
2020/06/11 Python
python实现一个简单RPC框架的示例
2020/10/28 Python
Chantelle仙黛尔内衣美国官网:法国第一品牌内衣
2018/07/26 全球购物
乌克兰珠宝大卖场:Zlato.ua
2020/09/27 全球购物
学校志愿者活动总结
2014/06/27 职场文书
投资意向书
2014/07/30 职场文书
节约每一滴水演讲稿
2014/09/09 职场文书
工作骂脏话检讨书
2014/10/05 职场文书