You need to enable JavaScript to run this app. Python中如何提取字典值列表的重复元素并按出现频率排序
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何提取字典值列表的重复元素并按出现频率排序

Python实现字典列表值元素频率统计与排序

实现思路

  • 先将字典所有值对应的列表展平,获取全部待统计元素
  • 调用内置计数器工具统计每个元素的出现频次
  • 过滤掉仅出现1次的非重复元素
  • 按出现频次从高到低排序得到最终结果

完整代码

from collections import Counter

# 示例字典
smp_dict = {
    0: [18, 2, 17, 12, 15, 0, 3],
    1: [13, 0, 3, 11, 4],
    2: [18, 2, 17, 12, 15, 8],
    3: [17, 12, 15, 5, 0, 3, 11],
    4: [9, 13]
}

# 统计所有元素的出现频率
element_counts = Counter(num for lst in smp_dict.values() for num in lst)

# 过滤重复元素并按频率降序排序
result = sorted(
    [k for k, cnt in element_counts.items() if cnt > 1],
    key=lambda x: element_counts[x],
    reverse=True
)

print(result) # 输出:[17, 12, 15, 0, 3, 13, 11]

代码说明

  • 用生成器表达式展平嵌套列表,不需要额外开辟大列表存储全部元素,内存效率更高
  • Counter 是Python内置的频次统计工具,无需手动遍历计数
  • 排序时指定reverse=True实现频率从高到低排列,同频率元素按首次出现顺序排列,和示例输出完全匹配

内容的提问来源于stack exchange,提问作者Karippery

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 05:36:02