Python列表中删除重复的字典
我有一个字典列表,我想删除具有相同键和值对的字典。
Python列表中删除重复的字典,记录一下解决办法。
运行环境 Runtime environment
1 | 操作系统: Windos10 |
需求
某日,在B站直播间,采集黑名单的名录,保存的时候,有了一个需求。
黑名单禁言时间是有时间限制的,禁言到期以后,黑名单就会自动消失。
那定时采集黑名单保存更新的时候就必然会出现名单重复的情况。
所以,为列表中重复的字典进行去重。
需求示例
列表:[{‘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}]
代码
试过,都说好。
1 | [dict(t) for t in {tuple(d.items()) for d in l}] |
总结
该方法,主要是将字典列表转换为元组列表,其中元组包含字典的键值对。
判断元组是否已经存在即可。
执行比较难理解的点主要是列表生成式中for循环的嵌套,其实也没什么了。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 快乐咸鱼のRaXianch窝!
评论
WalineValine