python - Python 删除重复的字典
问题描述
我正在尝试找到一种从字典列表中删除重复项的方法。我不必测试整个对象内容,因为给定对象中的“名称”值足以识别重复(即重复名称 = 重复对象)。我目前的尝试是这样的;
newResultArray = []
for i in range(0, len(resultArray)):
for j in range(0, len(resultArray)):
if(i != j):
keyI = resultArray[i]['name']
keyJ = resultArray[j]['name']
if(keyI != keyJ):
newResultArray.append(resultArray[i])
,这是非常不正确的。感谢任何建议。谢谢你。
解决方案
如果name
是唯一的,您应该只使用字典来存储您的内部字典,并name
作为键。然后你甚至不会有重复的问题,你可以在 O(1) 时间内从列表中删除。
由于我无法访问填充的代码resultArray
,因此我将简单地展示如何在线性时间内将其转换为字典。尽管如果可能的话,最好的选择是首先使用字典而不是使用字典resultArray
。
new_dictionary = {}
for item in resultArray:
new_dictionary[item['name']] = item
如果你最后必须有一个列表,那么你可以像这样转换回字典:
new_list = [v for k,v in new_dictionary.items()]
推荐阅读
- c# - 如何在 FindAsync() 方法中使用 lambda 函数?
- android - 通过 Gmail 和 Facebook 登录时用户身份验证失败
- javascript - 为什么我在反应原生 Firebase 中成功异步调用后收到错误
- mysql - 在 MySQL 中执行数组文字的最简单方法
- python - 错误 - 在 CBC 模式下,数据必须填充到 16 字节边界
- c++ - 是否有复制存储在二维数组中的相邻像素值的算法?
- java - 使用spring boot data redis模板得到空指针错误
- reactjs - 我如何在旋转木马上制作动画/移动图像以做出反应。哪种格式最好?
- javascript - 当我尝试搜索时,我的 jekyll/github 网站出现错误
- dc.js - 没有过滤器应用于 DC.js 图表时的条件自定义 X 值暗淡名称