大佬教程收集整理的这篇文章主要介绍了如何从python中的字典列表中删除重复项,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
这是它的样子:
[
{
"activity_name": "Wait Time","task_detail": [
{
"created_date": "2021-04-29 10:00:25.695254","row_ID": ""
}
]
},{
"activity_name": "Wait Time","task_detail": [
{
"created_date": "2021-04-29 10:28:42.131017","row_ID": ""
}
]
}
]
这是我的代码:
result=[]
for gc_item in gc_response['Items']:
for sch_act in gc_item['scheduled_activity']:
result.append(sch_act)
如何为此删除重复值?在 scheduled_activity 下,只有我有值(Activity name 和 task_detail)
我需要删除 1 个重复值。 输出应该是:
{
"activity_name": "Wait Time","row_ID": ""
}
]
}
仅当列表中不存在activity_name时才能添加
result=[]
acitivity_names_added = []
for sch_act in gc_item['scheduled_activity']:
if(sch_act['activity_name'] not in acitivity_names_added):
result.append(sch_act)
acitivity_names_added.append(sch_act['activity_name'])
如果你想保留最后一个而不是第一个,那么以相反的顺序遍历这个循环
result=[]
acitivity_names_added = []
for sch_act in gc_item['scheduled_activity'][::-1]:
if(sch_act['activity_name'] not in acitivity_names_added):
result.append(sch_act)
acitivity_names_added.append(sch_act['activity_name'])
,
这类似于Remove duplicate Dict in list in Python
在你的情况下,task_detail
似乎更复杂,所以像 [Dict(t) for t in {tuple(d.items()) for d in l}]
这样简单的元组方法可能不起作用,但你可以在同一个线程中尝试 json 方法:
import json
result = []
for gc_item in gc_response['Items']:
set_of_jsons = {json.dumps(d,sort_keys=TruE) for d in gc_item['scheduled_activity']}
result += [json.loads(t) for t in set_of_jsons]
它基本上将列表/字典转换为字符串,以便您可以按集合删除重复项。
以上是大佬教程为你收集整理的如何从python中的字典列表中删除重复项全部内容,希望文章能够帮你解决如何从python中的字典列表中删除重复项所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。