python - 如果第一个键的值匹配,则从字典列表中删除这两个项目
问题描述
details = [
{"id": "1", "name": "Bob", "age": 21, "student" : "yes"},
{"id": "1", "name": "Mary", "age": 25, "student" : "yes"},
{"id": "2", "name": "Jeff", "age": 22, "student" : "no"}
]
预期的:
[{"id": "2", "name": "Jeff", "age": 22, "student" : "no"}]
我尝试了删除重复项的解决方案,但在这些方法中 id=1 和 2 仍然是唯一值,但是如果重复 id ,我需要删除两个或多个匹配对及其字典,只留下不重复的一个。请提供任何帮助。
解决方案
您可以保留 alist
来检查 a 的多次出现id
,然后您可以忽略该条目
details = [
{"id": "1", "name": "Bob", "age": 21, "student" : "yes"},
{"id": "1", "name": "Mary", "age": 25, "student" : "yes"},
{"id": "2", "name": "Jeff", "age": 22, "student" : "no"}
]
ids = []
to_be_deleted = []
for i in details:
if i['id'] in ids:
to_be_deleted.append(i['id'])
else:
ids.append(i['id'])
output = [i for i in details if i['id'] not in to_be_deleted]
print(output)
[{'id': '2', 'name': 'Jeff', 'age': 22, 'student': 'no'}]
推荐阅读
- php - 表单在页面加载时自动添加条目
- java - 无法在 Spring Boot 中注册 Gson TypeAdapter
- python - 如何将函数的输出存储为单个条目而不是列表?
- javascript - 解码一个base45字符串,这将导致一个cbor压缩文件
- javascript - 如何在 django 的 for 循环中控制模型字段?
- javascript - 我通过 Flask 的 Chart.js 图形输出未显示所需的输出
- automation - 无论如何要自动查找未使用的 JavaScript 和 CSS?
- python - 迭代 tf.data.Dataset 的有效方法
- struct - Rust - 结构可以有一个可变成员吗?
- django - Django中重复的应用程序命名问题而不重命名应用程序