gpt4 book ai didi

python - 从两个字典列表中删除匹配项

转载 作者:太空宇宙 更新时间:2023-11-03 14:04:30 25 4
gpt4 key购买 nike

我需要拿两本字典并过滤掉无法识别名称的“垃圾”项:

data = [
{'annotation_id': 22, 'record_id': 5, 'name': 'Joe Young'},
{'annotation_id': 13, 'record_id': 7, 'name': '----'},
{'annotation_id': 12, 'record_id': 9, 'name': 'Greg Band'},
]

garbage = [
{'annotation_id': 13, 'record_id': 7, 'name': '----'}
]

所以在这种情况下,我需要从数据中删除 annotation_id 13。

我尝试遍历列表并将其删除,但我知道这在 python 中效果不佳。我也尝试了列表理解,但也失败了。我做错了什么?我的代码如下:

data = [[item for item in data if item['name'] != g['name'] for g in garbage]

上面的代码创建了许多重复版本的字典。

最佳答案

删除字典数组中特定条目的简单而优雅的方法,其中 garbage 是要从 data 中删除的字典条目列表:

 for g in garbage:
if g in data:
data.remove(g)

输入数据:

data = [
{'annotation_id': 22, 'record_id': 5, 'name': 'Joe Young'},
{'annotation_id': 13, 'record_id': 7, 'name': '----'},
{'annotation_id': 12, 'record_id': 9, 'name': 'Greg Band'},
]

garbage = [
{'annotation_id': 13, 'record_id': 7, 'name': '----'}
]

结果:

data = [
{'record_id': 5, 'annotation_id': 22, 'name': 'Joe Young'},
{'record_id': 9, 'annotation_id': 12, 'name': 'Greg Band'}
]

关于python - 从两个字典列表中删除匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45156041/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com