超简洁版 查找列表中的重复元素并统计重复数量(python)

之前在碰到要寻找列表中的重复元素的问题时,总是用for循环来解决,但是总是觉得有点繁琐,感觉这么频繁使用的需求应该有什么简洁的方法,搜索了一番,还真有,以下做一个总结。

这个方法主要是用到collections.Counter函数,导入方法为from collections import Counter。collections在python官方文档中的解释是High-performance container datatypes,具体到Counter我认为可以理解为一个计数器,统计列表中的各个元素的个数。如果想详细了解Counter函数,可以参见这个链接:

Python collections.Counter()函数

有了Counter,查找列表中的重复元素并统计重复数量的问题就可以轻松拿捏了,以下是代码:

from collections import Counter
ex = [1, 1, 3, 4, 4, 6]
result = dict(Counter(ex))
print(result)
print ([key for key,value in result.items() if value > 1]) 
print ({key:value for key,value in result.items() if value > 1}) 

用字典作为数据结构来展示,key为元素名称,value为元素数量,查找value>1的元素即为我们要找的重复元素。

此外,对于列表去重的问题,可以参见这篇文章:

python -- 对list去重并找出列表list中的重复元素

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值