通过三种方式给大家介绍,具体详情如下所示:

方式一:

原理:创建一个新的空字典,用循环的方式来获取列表中的每一个元素,判断获取的元素是否存在字典中的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找出列表中出现次数最多的元素三种方式相关推荐

  1. python出现的次数最多的元素_Python cookbook(数据结构与算法)找出序列中出现次数最多的元素算...

    本文实例讲述了Python找出序列中出现次数最多的元素.分享给大家供大家参考,具体如下: 问题:找出一个元素序列中出现次数最多的元素是什么 解决方案:collections模块中的Counter类正是 ...

  2. 利用HashMap找出数组中出现次数最多的元素及其次数

    我在牛客网上刷题时遇到了这道题目,因为初学Java不久,对Java的应用还不熟悉,刚开始用C语言做没做出来(我太菜了...),接着百度发现竟然可以用HashMap做,仔细一想发现这真是一个好办法(为什 ...

  3. Java实现找出数组中重复次数最多的元素以及个数

    /**数组中元素重复最多的数* @param array* @author shaobn* @param array*/public static void getMethod_4(int[] arr ...

  4. java数组出现次数最多的数_找出数组中出现次数最多的那个数——主元素问题...

    方法一:以空间换时间,可以定义一个计数数组int count[101],用来对数组中数字出现的次数进行计数(只能针对数组中数字的范围1~100),count数组中最大的元素对应的下标,即为出现次数最多 ...

  5. 找出列表中最大或最小的元素-python3

    """ 找出列表中最大或最小的元素Version: 1.0.0 Author: Catherine Data: 2019-03-11 """ ...

  6. python找出列表中所以相同元素的索引

    在 Python 中可以使用 enumerate() 函数来找出列表中所有相同元素的索引.enumerate() 函数返回的是一个包含元素索引和元素值的元组,可以在循环中使用.示例如下: my_lis ...

  7. python出现的次数最多的元素_【Python 秘籍】序列中出现次数最多的元素

    问题 怎样找出一个序列中出现次数最多的元素呢? 解决方案 collections.Counter 类就是专门为这类问题而设计的, 它甚至有一个有用的 most_common() 方法直接给了你答案. ...

  8. c语言找出一个数组中出现次数最多的那个元素,c语言找出数组中出现次数最多地那个元素...

    matlab中如何找出不同维度矩阵出现次数最多的数组并记录其个数 首先是胞矩阵中的序列问题,不妨假设AA{1}是一个多行两列的数据,AA{2}同例.程序如下clcclearallAA{1}=[12;2 ...

  9. python 找出列表中出现最多的元素_利用Python找出序列中出现最多的元素示例代码...

    前言 Python包含6种内置的序列:列表.元组.字符串 .Unicode字符串.buffer对象.xrange对象.在序列中的每个元素都有自己的编号.列表与元组的区别在于,列表是可以修改,而组元不可 ...

最新文章

  1. 压缩版styleGAN,合成高保真图像,参数更少、计算复杂度更低
  2. SAP EWM - 物料主数据 - EWM系统库存规划 - SLOTTING视图属性
  3. sql2008 删除日志
  4. PHP Apache shutdown unexpectedly启动错误解释及解决的方法
  5. String.Format使用方法
  6. 再有人问你Java内存模型是什么,就把这篇文章发给他
  7. bo65连oracle报服务不响应,ORACLE常见问题一千问[1至100]
  8. netsh 查询mac地址_ARP(Address Resolution Protocol)地址解析协议
  9. POJ1080 Human Gene Functions 动态规划 LCS的变形
  10. matlab lj( )函数,matlab 函数调用问题
  11. man综述--系统调用和库函数的关系
  12. Linux Linux程序练习十(网络编程大文件发送)
  13. 重磅 | 企业大数据战略规划,看这一篇文章就够了!
  14. 2021年杭州行政区划调整方案与远景轨道线网概念图
  15. jquery fadeOut 异步
  16. 支付平台--网联详解
  17. 51单片机学习笔记——SH88F4051A
  18. python处理Jenkins Job配置文件config.xml
  19. 令人抓狂的Linux桥接设定奇遇
  20. DSPTMS320F28335_SCI详解

热门文章

  1. 转:一个PHP实现的ID生成器
  2. I.MX6 Android busybox 从哪里生成的
  3. getDimension等区别
  4. FreeBSD portupgrade升级你的FreeBSD软件[zt]
  5. 教你获取WindowsNT的Admin权限的方法
  6. python整数类型进制表示_python2学习经验(一) 变量数据类型
  7. 【实用】ABAP“FOR ALL ENTRIES”的Hints 优化
  8. ABAP表抛FTP通用程序
  9. 4、Power Map—实例:演示报告封面
  10. SAP Business One和SAP All-in-One