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

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

本文介绍在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 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。