Python如何对字典列表去重 获取去重后的唯一元素列表
按id字段去重最简方案
你原有代码的逻辑是按字典的id字段去重,重复id保留最后一次出现的元素,Python 3.7及以上版本(字典默认保序)可以直接用一行代码实现,逻辑和你原有代码完全一致:
new_d = list({item['id']: item for item in test_list}.values())
如果需要保留重复id第一次出现的元素,倒序遍历后反转结果即可:
new_d = list({item['id']: item for item in reversed(test_list)}.values())[::-1]
全字段完全匹配去重方案
如果你的去重规则是字典所有键值对完全相同才算重复,可将字典转为可哈希的元组后处理:
- 无需保序版本:
new_d = [dict(t) for t in {tuple(item.items()) for item in test_list}]
- 保留原顺序版本:
seen = set() new_d = [] for item in test_list: item_tuple = tuple(item.items()) if item_tuple not in seen: seen.add(item_tuple) new_d.append(item)
内容的提问来源于stack exchange,提问作者Adi
相关产品推荐
相关产品推荐

