Python列表去重:按字典指定Key过滤重复项
本文介绍在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与字典操作的内容,欢迎查阅本站历史文章或继续浏览后续教程,感谢支持!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









