Python列表去重:按字典指定Key过滤重复项

Jasper
Jasper
发布时间:2026-10-14 | 3人浏览过
原创

本文介绍在Python爬虫开发中,针对包含重复字典的List进行去重的解决方案。由于直接对包含字典的列表使用set()会报错,本文提供自定义函数方法,通过遍历List并根据指定Key筛选数据,实现高效去重,附带完整代码与运行结果。

需求说明

一、需求说明

在编写爬虫程序时,经常需要处理JSON格式的数据,其结构通常如下所示:


data = [{'name':'小K','score':100},
    {'name':'小J','score':98},
    {'name':'小Q','score':95},
    {'name':'小K','score':100}]

观察数据可见,名称为“小K”的条目出现了重复,此时我们需要执行去重操作。对于普通的List去重,通常可以直接使用set()函数,例如:


data = list(set(data))

但实际运行后会发现程序报错:


这是因为List中的元素若为dict类型,无法直接放入set()中进行哈希计算。面对这种情况,该如何处理?

解决方案

二、我的解决方案

我们可以定义一个专门的去重函数,依据数据中的某个Key值进行筛选和去重:


def DelRepeat(data,key):
  new_data = [] # 用于存储去重后的list
  values = []  # 用于存储当前已有的值
  for d in data:
    if d[key] not in values:
      new_data.append(d)
      values.append(d[key])
  return new_data

其中,参数data代表需要去重的原始List,key指定用于判断重复的键名。执行去重后的结果如下:

[{'name': '小K', 'score': 100}, {'name': '小J', 'score': 98}, {'name': '小Q', 'score': 95}]

至此,成功实现了去重。

以上就是关于Python List按字典Key去重的示例代码。如需了解更多相关Python List与字典操作的内容,欢迎查阅本站历史文章或继续浏览后续教程,感谢支持!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表