我需要拿到两个字典并过滤掉未识别名称的'垃圾'项:
以上代码创建了许多重复的字典版本。
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': '----'}
]
在这种情况下,我需要从数据中删除注释ID 13。
我尝试遍历列表并将其删除,但我知道在Python中这样做效果不好。我还尝试了列表推导式,但也失败了。我错在哪里?我的代码如下:
data = [[item for item in data if item['name'] != g['name'] for g in garbage]
以上代码创建了许多重复的字典版本。
item['name'] != g.['name']
应该改为item['name'] != g['name']
。同时,在推导式列表语句的开头只放一个方括号。 - slackmartdata = [item for item in data if all(item['name'] != g['name'] for g in garbage)]
。 - balki