Python中如何获取列表内各重复元素对应的出现次数?
实现方案
你需要先统计列表中各元素的出现频次,再提取出出现次数大于1的频次值转为集合即可,有两种常用实现方式:
方式1:使用标准库collections.Counter实现(推荐,时间复杂度更低)
from collections import Counter X = [1, 1, 1, 2, 2] def DupeL(l): count_map = Counter(l) # 提取出现次数大于1的计数,转成集合 return set(count for num, count in count_map.items() if count > 1) print(DupeL(X))
运行输出就是你需要的{2, 3}。
方式2:不导入额外库,基于你原有逻辑修改
X = [1, 1, 1, 2, 2] def DupeL(l): # 先拿到所有重复的元素,去重后统计每个的次数 dup_nums = set(x for x in l if l.count(x) > 1) return set(l.count(num) for num in dup_nums) print(DupeL(X))
这个写法适合小体量列表的统计场景。
内容的提问来源于stack exchange,提问作者Cassidy Renno
相关产品推荐
相关产品推荐

