针对列表中的字典去重

news/发布时间2024/5/1 5:09:14

背景:

我有一个列表,列表中存储的子元素是字典,字典中存在多个键值对,其中id是绝对不相同的,但其他键值对可能和另外的子元素重复,现在要去除重复的子元素

# 原始列表
original_list = [{"id": 1, "name": "Alice", "age": 20},{"id": 2, "name": "Bob", "age": 25},{"id": 3, "name": "Alice", "age": 30},{"id": 4, "name": "Carol", "age": 35},{"id": 5, "name": "Bob", "age": 25},
]# 辅助集合
seen = set()# 存储不重复子元素的列表
unique_list = []# 遍历原始列表
for item in original_list:# 创建子元素的唯一标识,不包含idunique_id = frozenset(item.items()) - frozenset([("id", item["id"])])# 如果唯一标识不在辅助集合中,表示非id部分是首次出现if unique_id not in seen:# 将唯一标识加入辅助集合中,用于判断后续是否重复出现seen.add(unique_id)# 将不重复的子元素添加到结果列表中unique_list.append(item)# 打印结果
print(unique_list)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ulsteruni.cn/article/84302726.html

如若内容造成侵权/违法违规/事实不符,请联系编程大学网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

MyBatis动态SQL

MyBatis动态SQL 动态SQL简介 动态 SQL 是 MyBatis 的强大特性之一。如果你使用过 JDBC 或其它类似的框架,你应该能理解根据不同条件拼接 SQL 语句有多痛苦,例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL,可以彻底摆脱这种痛苦…

Java 中文官方教程 2022 版(十四)

原文:docs.oracle.com/javase/tutorial/reallybigindex.html设置包版本信息原文:docs.oracle.com/javase/tutorial/deployment/jar/packageman.html您可能需要在 JAR 文件的 MANIFEST.MF 中包含包版本信息。您可以使用 MANIFEST.MF 中的以下头部提供此信息: 清单中的头部头部…

Java 中文官方教程 2022 版(二)

原文:docs.oracle.com/javase/tutorial/reallybigindex.html运算符原文:docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html现在你已经学会了如何声明和初始化变量,你可能想知道如何对其进行操作。学习 Java 编程语言的运算符是一个很好的开始。运算符是执行…

狂神说Java Web学习笔记_Session

原理图服务器会给每一个用户(浏览器)创建一个session对象 一个session独占一个浏览器,主要浏览器没有关,这个session就存在 登录之后,整个网站都可以访问 常用场景 保存一个用户的登录信息 在整个网站中经常会使用到的数据 常用的session方法 //得到Session HttpSession s…

CAS 操作原理

CAS(Compare and Swap)是一种原子操作,用于实现乐观锁的一种方式。CAS 操作包括三个参数:内存地址(或变量),期望值和新值。CAS 操作会先比较内存地址处的值和期望值是否相等,如果相等,则将该内存地址的值更新为新值;如果不相等,则不做任何操作。CAS 操作是一种无锁算…

二手交易平台原型图

二手交易平台原型图绘制 墨刀、Axure、Mockplus等原型设计工具优缺点分析Axure优点:强大的编辑功能,便于制作素材库。 快速的复制粘贴,素材库和原型库丰富。 项目共享功能,方便同事间同步工作,保留所有工作历史。 可以生成历史版本的项目文档。缺点:正版的Axure售价高,对…