删除Python列表中的重复DECT我有一个字典列表,我想用相同的键和值对删除这些数据集。关于这份清单:[{'a': 123}, {'b': 123}, {'a': 123}]我想退货:[{'a': 123}, {'b': 123}]另一个例子:关于这份清单:[{'a': 123, 'b': 1234}, {'a': 3222, 'b': 1234}, {'a': 123, 'b': 1234}]我想退货:[{'a': 123, 'b': 1234}, {'a': 3222, 'b': 1234}]
3 回答

婷婷同学_
TA贡献1844条经验 获得超8个赞
[dict(t) for t in {tuple(d.items()) for d in l}]
set
set(tuple(d.items()) for d in l)
dict
.
l
是原始列表 d
是列表中的字典之一。 t
是从字典中创建的元组之一。
set
l = [{'a': 123, 'b': 1234}, {'a': 3222, 'b': 1234}, {'a': 123, 'b': 1234}]seen = set()new_l = []for d in l: t = tuple(d.items()) if t not in seen: seen.add(t) new_l.append(d)print new_l
[{'a': 123, 'b': 1234}, {'a': 3222, 'b': 1234}]
d.items()

慕姐8265434
TA贡献1813条经验 获得超2个赞
>>> d = [{'a': 123}, {'b': 123}, {'a': 123}]>>> [i for n, i in enumerate(d) if i not in d[n + 1:]][{'b': 123}, {'a': 123}]
dict
n
enumerate
).

慕哥6287543
TA贡献1831条经验 获得超10个赞
a = [{'a': 123}, {'b': 123}, {'a': 123}]b = []for i in range(0, len(a)): if a[i] not in a[i+1:]: b.append(a[i])
添加回答
举报
0/150
提交
取消