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中的二维数组的操作方法
May 02 Python
使用Python的PIL模块来进行图片对比
Feb 18 Python
Python绘制七段数码管实例代码
Dec 20 Python
使用TensorFlow实现SVM
Sep 06 Python
python实现猜拳游戏
Mar 04 Python
如何打包Python Web项目实现免安装一键启动的方法
May 21 Python
python可以用哪些数据库
Jun 22 Python
python进度条显示之tqmd模块
Aug 22 Python
详解Python yaml模块
Sep 23 Python
pycharm 实现光标快速移动到括号外或行尾的操作
Feb 05 Python
python中如何对多变量连续赋值
Jun 03 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 执行系统外部命令 system() exec() passthru()
2009/08/11 PHP
php中3种方法统计字符串中每种字符的个数并排序
2012/08/27 PHP
iframe 自适应高度[在IE6 IE7 FF下测试通过]
2009/04/13 Javascript
载入jQuery库的最佳方法详细说明及实现代码
2012/12/28 Javascript
js/jquery获取文本框输入焦点的方法
2014/03/04 Javascript
javascript中的取反再取反~~没有意义
2014/04/06 Javascript
JS回调函数的应用简单实例
2014/09/17 Javascript
jQuery中offset()方法用法实例
2015/01/16 Javascript
JS定义网页表单提交(submit)的方法
2015/03/20 Javascript
javascript判断网页是关闭还是刷新
2015/09/12 Javascript
js跨域请求数据的3种常用的方法
2015/12/01 Javascript
浅谈javascript中onbeforeunload与onunload事件
2015/12/10 Javascript
Vue.js使用v-show和v-if的注意事项
2016/12/13 Javascript
Vue.js学习教程之列表渲染详解
2017/05/17 Javascript
node+express+ejs使用模版引擎做的一个示例demo
2017/09/18 Javascript
vue mint-ui tabbar变组件使用
2018/05/04 Javascript
layui 表格的属性的显示转换方法
2018/08/14 Javascript
vue中使用protobuf的过程记录
2018/10/26 Javascript
微信小程序学习笔记之表单提交与PHP后台数据交互处理图文详解
2019/03/28 Javascript
vue-cli随机生成port源码的方法
2019/09/02 Javascript
ES2020 已定稿,真实场景案例分析
2020/05/25 Javascript
python进阶教程之循环相关函数range、enumerate、zip
2014/08/30 Python
利用Django框架中select_related和prefetch_related函数对数据库查询优化
2015/04/01 Python
python3.5使用tkinter制作记事本
2016/06/20 Python
Python机器学习之SVM支持向量机
2017/12/27 Python
pyttsx3实现中文文字转语音的方法
2018/12/24 Python
Falsk 与 Django 过滤器的使用与区别详解
2019/06/04 Python
django框架model orM使用字典作为参数,保存数据的方法分析
2019/06/24 Python
Django中Middleware中的函数详解
2019/07/18 Python
django 控制页面跳转的例子
2019/08/06 Python
python实现提取str字符串/json中多级目录下的某个值
2020/02/27 Python
TensorFlow keras卷积神经网络 添加L2正则化方式
2020/05/22 Python
用HTML5 Canvas API中的clearRect()方法实现橡皮擦功能
2016/03/15 HTML / CSS
乌克兰数字设备、配件和智能技术的连锁商店:KTC
2020/08/18 全球购物
环保倡议书400字
2014/05/15 职场文书
sql字段解析器的实现示例
2021/06/23 SQL Server