之前在碰到要寻找列表中的重复元素的问题时,总是用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的元素即为我们要找的重复元素。
此外,对于列表去重的问题,可以参见这篇文章: