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

如何基于指定键移除字典列表中的重复项

字典列表按指定键去重(保留首次出现项)

针对你提出的需求,这里提供两种Python实现方案,均能基于指定键(如示例中的Name)去重并保留第一个出现的字典项:

方法一:遍历+集合记录(兼容所有Python版本)

通过遍历原列表,用集合记录已经处理过的键值,只保留首次出现的字典项,逻辑直观且兼容性强:

# 修正语法后的输入列表(Python字典键需为字符串)
lst = [
    {"Name": "a", "age": 2},
    {"Name": "b", "age": 7},
    {"Name": "a", "age": 23},
    {"Name": "c", "age": 16},
]

seen_keys = set()
unique_list = []

for item in lst:
    current_key = item["Name"]
    if current_key not in seen_keys:
        seen_keys.add(current_key)
        unique_list.append(item)

print(unique_list)

输出结果:

[{'Name': 'a', 'age': 2}, {'Name': 'b', 'age': 7}, {'Name': 'c', 'age': 16}]

方法二:字典推导式(Python 3.7+适用)

利用Python 3.7及以上版本字典会保留插入顺序的特性,用指定键作为字典的键,自动去重后提取值即可,代码更简洁:

lst = [
    {"Name": "a", "age": 2},
    {"Name": "b", "age": 7},
    {"Name": "a", "age": 23},
    {"Name": "c", "age": 16},
]

# 以Name为键构建字典,重复键会被后续项覆盖,但因为保留插入顺序,最终保留的是首次出现的项
unique_dict = {item["Name"]: item for item in lst}
# 提取字典的值转为列表
unique_list = list(unique_dict.values())

print(unique_list)

输出结果与方法一完全一致。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 08:52:10