Python找出列表中出现次数最多的元素三种方式
通过三种方式给大家介绍,具体详情如下所示:
方式一:
原理:创建一个新的空字典,用循环的方式来获取列表中的每一个元素,判断获取的元素是否存在字典中的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
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
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类
这个模块很强大,尤其是这个类。他可以直接帮我们计数,然后再帮我们排序好。从大到小
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
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 cookbook(数据结构与算法)找出序列中出现次数最多的元素算...
本文实例讲述了Python找出序列中出现次数最多的元素.分享给大家供大家参考,具体如下: 问题:找出一个元素序列中出现次数最多的元素是什么 解决方案:collections模块中的Counter类正是 ...
- 利用HashMap找出数组中出现次数最多的元素及其次数
我在牛客网上刷题时遇到了这道题目,因为初学Java不久,对Java的应用还不熟悉,刚开始用C语言做没做出来(我太菜了...),接着百度发现竟然可以用HashMap做,仔细一想发现这真是一个好办法(为什 ...
- Java实现找出数组中重复次数最多的元素以及个数
/**数组中元素重复最多的数* @param array* @author shaobn* @param array*/public static void getMethod_4(int[] arr ...
- java数组出现次数最多的数_找出数组中出现次数最多的那个数——主元素问题...
方法一:以空间换时间,可以定义一个计数数组int count[101],用来对数组中数字出现的次数进行计数(只能针对数组中数字的范围1~100),count数组中最大的元素对应的下标,即为出现次数最多 ...
- 找出列表中最大或最小的元素-python3
""" 找出列表中最大或最小的元素Version: 1.0.0 Author: Catherine Data: 2019-03-11 """ ...
- python找出列表中所以相同元素的索引
在 Python 中可以使用 enumerate() 函数来找出列表中所有相同元素的索引.enumerate() 函数返回的是一个包含元素索引和元素值的元组,可以在循环中使用.示例如下: my_lis ...
- python出现的次数最多的元素_【Python 秘籍】序列中出现次数最多的元素
问题 怎样找出一个序列中出现次数最多的元素呢? 解决方案 collections.Counter 类就是专门为这类问题而设计的, 它甚至有一个有用的 most_common() 方法直接给了你答案. ...
- c语言找出一个数组中出现次数最多的那个元素,c语言找出数组中出现次数最多地那个元素...
matlab中如何找出不同维度矩阵出现次数最多的数组并记录其个数 首先是胞矩阵中的序列问题,不妨假设AA{1}是一个多行两列的数据,AA{2}同例.程序如下clcclearallAA{1}=[12;2 ...
- python 找出列表中出现最多的元素_利用Python找出序列中出现最多的元素示例代码...
前言 Python包含6种内置的序列:列表.元组.字符串 .Unicode字符串.buffer对象.xrange对象.在序列中的每个元素都有自己的编号.列表与元组的区别在于,列表是可以修改,而组元不可 ...
最新文章
- 压缩版styleGAN,合成高保真图像,参数更少、计算复杂度更低
- SAP EWM - 物料主数据 - EWM系统库存规划 - SLOTTING视图属性
- sql2008 删除日志
- PHP Apache shutdown unexpectedly启动错误解释及解决的方法
- String.Format使用方法
- 再有人问你Java内存模型是什么,就把这篇文章发给他
- bo65连oracle报服务不响应,ORACLE常见问题一千问[1至100]
- netsh 查询mac地址_ARP(Address Resolution Protocol)地址解析协议
- POJ1080 Human Gene Functions 动态规划 LCS的变形
- matlab lj( )函数,matlab 函数调用问题
- man综述--系统调用和库函数的关系
- Linux Linux程序练习十(网络编程大文件发送)
- 重磅 | 企业大数据战略规划,看这一篇文章就够了!
- 2021年杭州行政区划调整方案与远景轨道线网概念图
- jquery fadeOut 异步
- 支付平台--网联详解
- 51单片机学习笔记——SH88F4051A
- python处理Jenkins Job配置文件config.xml
- 令人抓狂的Linux桥接设定奇遇
- DSPTMS320F28335_SCI详解
热门文章
- 转:一个PHP实现的ID生成器
- I.MX6 Android busybox 从哪里生成的
- getDimension等区别
- FreeBSD portupgrade升级你的FreeBSD软件[zt]
- 教你获取WindowsNT的Admin权限的方法
- python整数类型进制表示_python2学习经验(一) 变量数据类型
- 【实用】ABAP“FOR ALL ENTRIES”的Hints 优化
- ABAP表抛FTP通用程序
- 4、Power Map—实例:演示报告封面
- SAP Business One和SAP All-in-One