You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用单行Python代码按id对字典列表去重(保留任意记录)?

按ID去重字典列表的单行Python实现

要实现按id去重并保留任意一条记录,直接利用字典键的唯一性就能搞定,单行代码如下:

list({item['id']: item for item in [{'id': 1, 'name': 'Sam'}, {'id': 1, 'name': 'Bob'}, {'id': 2, 'name': 'Mark'}, {'id': 2, 'name': 'Jane'}]}.values())

原理说明

  • 字典推导式{item['id']: item for item in 原列表}会遍历原列表,把每个字典的id作为键、字典本身作为值。由于字典的键不能重复,后续遇到相同id的字典会覆盖之前的条目,最终每个id只会保留最后一次出现的记录。
  • 最后用list(...)把字典的values()转换成列表,就得到了去重后的结果。

如果想保留每个id第一次出现的记录,只需先反转原列表,处理后再反转回来:

list({item['id']: item for item in reversed([{'id': 1, 'name': 'Sam'}, {'id': 1, 'name': 'Bob'}, {'id': 2, 'name': 'Mark'}, {'id': 2, 'name': 'Jane'}])}.values())[::-1]

内容的提问来源于stack exchange,提问作者StackUser

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 17:45:40