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实现根据窗口标题调用窗口的方法
Mar 13 Python
python中requests和https使用简单示例
Jan 18 Python
Python实现高斯函数的三维显示方法
Dec 29 Python
对Python 获取类的成员变量及临时变量的方法详解
Jan 22 Python
Python3模拟登录操作实例分析
Mar 12 Python
OpenCV 边缘检测
Jul 10 Python
Python+Selenium使用Page Object实现页面自动化测试
Jul 14 Python
django认证系统 Authentication使用详解
Jul 22 Python
使用Rasterio读取栅格数据的实例讲解
Nov 26 Python
pandas DataFrame运算的实现
Jun 14 Python
Python3如何使用tabulate打印数据
Sep 25 Python
Python中的流程控制详解
Feb 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
手冲咖啡应该是现代精品咖啡店的必备选项吗?
2021/03/03 冲泡冲煮
使用PHP socke 向指定页面提交数据
2008/07/23 PHP
php学习之数据类型之间的转换介绍
2011/06/09 PHP
php学习笔记(三)操作符与控制结构
2011/08/06 PHP
mantis安装、配置和使用中的问题小结
2014/07/14 PHP
PHP模板解析类实例
2015/07/09 PHP
Ext.MessageBox工具类简介
2009/12/10 Javascript
通过javascript设置css属性的代码
2009/12/28 Javascript
在IE浏览器中resize事件执行多次的解决方法
2011/07/12 Javascript
js Date概念详细介绍
2013/11/22 Javascript
JavaScript实现图片DIV竖向滑动的方法
2015/04/25 Javascript
js实现仿百度汽车频道选择汽车图片展示实例
2015/05/06 Javascript
JavaScript重载函数实例剖析
2016/05/13 Javascript
Ubuntu系统下Angularjs开发环境安装
2016/09/01 Javascript
再谈javascript注入 黑客必备!
2016/09/14 Javascript
原生js实现无缝轮播图效果
2017/01/11 Javascript
AngularJS实现根据不同条件显示不同控件
2017/04/20 Javascript
vue+element-ui集成随机验证码+用户名+密码的form表单验证功能
2018/08/05 Javascript
解决angularjs WdatePicker ng-model的问题
2018/09/13 Javascript
微信小程序实现基于三元运算验证手机号/姓名功能示例
2019/01/19 Javascript
[01:00:49]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第二场 1月31日
2021/03/11 DOTA
Python fileinput模块使用实例
2015/06/03 Python
python安装教程 Pycharm安装详细教程
2017/05/02 Python
Python实现的txt文件去重功能示例
2018/07/07 Python
使用Python在Windows下获取USB PID&amp;VID的方法
2019/07/02 Python
Django Serializer HiddenField隐藏字段实例
2020/03/31 Python
python如何随机生成高强度密码
2020/08/19 Python
Marc O’Polo俄罗斯官方在线商店:德国高端时尚品牌
2019/12/26 全球购物
英国领先的在线鱼贩:The Fish Society
2020/08/12 全球购物
高速铁道技术专业求职信
2014/08/09 职场文书
工作失误检讨书(经典集锦版)
2014/10/17 职场文书
关于迟到的检讨书
2015/05/06 职场文书
机械原理课程设计心得体会
2016/01/15 职场文书
python opencv通过4坐标剪裁图片
2021/06/05 Python
python数字类型和占位符详情
2022/03/13 Python
MySQL数据库 任意ip连接方法
2022/05/20 MySQL