刪除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}]setset(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}]dictnenumerate).
慕哥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
提交
取消
