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程序员开发中常犯的10个错误
Jul 07 Python
Python中__init__.py文件的作用详解
Sep 18 Python
Python中static相关知识小结
Jan 02 Python
详解Python使用tensorflow入门指南
Feb 09 Python
图解Python变量与赋值
Apr 03 Python
对Python 文件夹遍历和文件查找的实例讲解
Apr 26 Python
Python 实现中值滤波、均值滤波的方法
Jan 09 Python
python操作文件的参数整理
Jun 11 Python
对Django项目中的ORM映射与模糊查询的使用详解
Jul 18 Python
python字典排序的方法
Oct 12 Python
安装Anaconda3及使用Jupyter的方法
Oct 27 Python
python计算列表元素与乘积详情
Aug 05 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
在mysql数据库原有字段后增加新内容
2009/11/26 PHP
php输出xml格式字符串(用的这个)
2012/07/12 PHP
图解找出PHP配置文件php.ini的路径的方法
2014/08/20 PHP
php简单防盗链实现方法
2015/07/29 PHP
PHP实现mysqli批量执行多条语句的方法示例
2017/07/22 PHP
PHP如何搭建百度Ueditor富文本编辑器
2018/09/21 PHP
phpStorm+XDebug+chrome 配置详解
2019/04/01 PHP
laravel框架中间件简单使用方法示例
2020/01/25 PHP
JavaScript中数组的排序、乱序和搜索实现代码
2011/11/30 Javascript
jquery中使用$(#form).submit()重写提交表单无效原因分析及解决
2013/03/25 Javascript
Jquery getJSON方法详细分析
2013/12/26 Javascript
JQuery插件iScroll实现下拉刷新,滚动翻页特效
2014/06/22 Javascript
JavaScript实现的多种鼠标拖放效果
2015/11/03 Javascript
浅析Angular2子模块以及异步加载
2017/04/24 Javascript
angularjs定时任务的设置与清除示例
2017/06/02 Javascript
vue.js 底部导航栏 一级路由显示 子路由不显示的解决方法
2018/03/09 Javascript
Node.js npm命令运行node.js脚本的方法
2018/10/10 Javascript
微信小程序时间轴实现方法示例
2019/01/14 Javascript
Vue实战教程之仿肯德基宅急送App
2019/07/19 Javascript
Nuxt页面级缓存的实现
2020/03/09 Javascript
[54:57]DOTA2-DPC中国联赛定级赛 Aster vs DLG BO3第二场 1月8日
2021/03/11 DOTA
zookeeper python接口实例详解
2018/01/18 Python
Python 统计字数的思路详解
2018/05/08 Python
python实现决策树ID3算法的示例代码
2018/05/30 Python
flask入门之文件上传与邮件发送示例
2018/07/18 Python
Python格式化输出字符串方法小结【%与format】
2018/10/29 Python
详解Django CAS 解决方案
2019/10/30 Python
pycharm第三方库安装失败的问题及解决经验分享
2020/05/09 Python
Windows 平台做 Python 开发的最佳组合(推荐)
2020/07/27 Python
Docker如何部署Python项目的实现详解
2020/10/26 Python
关于老式浏览器兼容HTML5和CSS3的问题
2016/06/01 HTML / CSS
美国最受欢迎的度假目的地优惠套餐:BookVIP
2018/09/27 全球购物
内容编辑个人求职信
2013/12/10 职场文书
优秀员工年终发言演讲稿
2014/01/01 职场文书
征求意见函
2015/06/05 职场文书
个人职业生涯规划之自我评估篇
2019/09/03 职场文书