You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中提取字典列表里重复ID对应的字典?

找出字典列表中ID重复的条目

要找出ID出现多次的字典,你可以按以下步骤操作:

步骤1:统计每个ID的出现次数

用collections.Counter快速统计所有ID的出现频率,这是高效的实现方式之一:

from collections import Counter

# 示例字典列表(添加了一个重复ID的条目用于演示)
comments = [
    {'ID': 2501,
     'First Name': 'Edward',
     'Last Name': 'Crawford',
     'Email': 'c.crawford@randatmail.com',
     'Location': '[1.24564352 0.94323637]',
     'Registration': '12/12/2000',
     'Phone': '398-2890-30'},
    {'ID': 3390936,
     'First Name': 'Pepe',
     'Last Name': 'Slim',
     'Email': 'pepe.slim@somemail.com',
     'Location': '[1.7297525  0.54631239]',
     'Registration': '3/8/2020',
     'Phone': '341-3456-85'},
    {'ID': 2501,
     'First Name': 'Eddie',
     'Last Name': 'Crawford',
     'Email': 'e.crawford@randatmail.com',
     'Location': '[1.24564352 0.94323637]',
     'Registration': '12/12/2000',
     'Phone': '398-2890-31'}
]

# 提取所有ID并统计出现次数
id_counts = Counter(item['ID'] for item in comments)

步骤2:筛选出ID重复的字典

遍历原列表,只保留ID出现次数大于1的条目:

# 筛选出ID重复的字典
duplicate_id_items = [item for item in comments if id_counts[item['ID']] > 1]

# 打印结果
for item in duplicate_id_items:
    print(item)

运行后会输出所有ID重复的字典条目,比如示例中ID为2501的两个字典都会被打印。

不导入模块的替代实现

如果不想使用collections模块,也可以手动统计ID次数:

# 手动统计ID出现次数
id_counts = {}
for item in comments:
    id_val = item['ID']
    id_counts[id_val] = id_counts.get(id_val, 0) + 1

# 筛选重复条目
duplicate_id_items = [item for item in comments if id_counts[item['ID']] > 1]

逻辑和用Counter一致,只是手动实现了统计功能,适合不想额外导入模块的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 05:01:11