我想从字典列表中找到重复的目录并删除其中一个,但它会生成错误。姓名、年龄、组只有所有 3 个值应该相同才能将其作为重复字典。不附加到新的字典列表
a = [
{"name": "Tom", "age": 21,"group":"sdd","points":0},
{"name": "Mark", "age": 5,"group":"sdo","points":0},
{"name": "Pam", "age": 7,"group":"spp","points":0},
{"name": "Tom", "age": 21,"group":"sdd","points":0},
{"name": "Buke", "age": 31,"group":"pool","points":0}
]
print(a)
for i in range(len(a)):
for j in range(i+1,len(a)):
if a[i] == a[j]:
a.pop[j]
print(a)
最佳答案
如果我没理解错的话,只有当姓名、年龄和组匹配时才会出现重复:
a = [
{"name": "Tom", "age": 21, "group": "sdd", "points": 0},
{"name": "Mark", "age": 5, "group": "sdo", "points": 0},
{"name": "Pam", "age": 7, "group": "spp", "points": 0},
{"name": "Tom", "age": 21, "group": "sdd", "points": 0},
{"name": "Buke", "age": 31, "group": "pool", "points": 0},
]
out, seen = [], set()
for d in a:
tpl = d["name"], d["age"], d["group"]
if tpl not in seen:
seen.add(tpl)
out.append(d)
print(out)
打印:
[
{"name": "Tom", "age": 21, "group": "sdd", "points": 0},
{"name": "Mark", "age": 5, "group": "sdo", "points": 0},
{"name": "Pam", "age": 7, "group": "spp", "points": 0},
{"name": "Buke", "age": 31, "group": "pool", "points": 0},
]
关于python - 从字典列表中删除重复的字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74584726/