不依靠for循环,Python如何对列表进行去重并保留排列顺序

embedded/2024/9/24 7:50:42/

python中,我们想要从列表中删除重复元素,并且保留去重之前的先后排列顺序。在这里,我们本文不谈论for循环,我们来谈论其他的更优方法——OrderedDict和set。

要知道,OrderedDict可以通过保留插入顺序来实现元素去重;而set集合,则可以直接去除列表中的重复元素。

需要注意的是,我们的选择方法要取决于是否需要保持列表元素的先后顺序。为了方便于更直接清晰的看懂上述提到的两种方法的去重技术,下面将结合实际代码来说明。

图片

正文

1.set去重

示例代码如下所示:

成功运行上述代码,结果输出如下所示:

接下来,我们再来看OrderedDict方法。

2.OrderedDict去重

使用OrderedDict方法进行列表去重,示例代码如下所示:

成功运行上述代码,结果输出如下所示:

在上面提到的两种方法中,都可以保存最初的排列顺序,删除重复元素。

只不过需要注意的是,方法二选择的是OrderedDict方法,如果你想要保持相对顺序进行去重,则可以选择使用OrderedDict来实现。

如果你对去重的最终结果不需要保持相对顺序,则可以选择使用第一种方法,即set集合去重,它更简洁直观。

换言之,set集合对列表进行去重之后,其结果和初始的列表排列顺序不一致。而OrderedDict方法,对列表元素进行去重之后和去重之前的元素排列顺序是一致的。


http://www.ppmy.cn/embedded/94920.html

相关文章

系统架构师学习大纲(四)

一、培养沟通和领导技能 1、与团队成员和利益相关者沟通 沟通是一种重要的技能,特别是在领导角色中。一个有效的领导者应能够与团队成员和其他利益相关者进行清晰、明确地沟通,要在沟通方面培养技能。 学习倾听:倾听是沟通的重要组成部分。…

Leetcode每日刷题之 1089. 复写零(C++)

1. 题目解析 由题目可知,我们需要将给定数组中的所有零复写一遍,并且保证不能超出数组长度,还不可以开辟新的数组,要在原数组的位置直接操作 2. 算法原理 1. 由题目我们可以将问题简化为找出最终复写完成数组的最后一个元素&#…

Linux Shell基础常用脚本命令及应用案例

文章目录 常用的 Shell 命令1. 变量2. 注释3. 输出4. 输入5. 条件判断6. 循环7. 函数8. 运算9. 流程控制10. 文件和目录操作11. 错误处理 Shell 脚本应用案例1. Hello World 脚本2. 创建系统账户及设置密码3. 日志文件备份4. 一键部署 LNMP 环境5. 检查磁盘空间6. 自动安装软件…

linux HBA驱动中scsi_host_template .shost_attrs

在Linux内核中,SCSI(Small Computer System Interface)是一种用于连接计算机和外围设备的接口。scsi_host_template是一个结构体,用于定义SCSI主机(host adapter)的属性和操作。这个模板用于初始化SCSI主机…

3. MQTT协议的架构

1 MQTT协议的层次结构 MQTT协议的架构设计简洁,主要由三个部分组成:客户端、代理和消息。理解这些组件及其交互是掌握MQTT协议的关键。 1.1 客户端(Client) 客户端是MQTT协议的核心组成部分,分为发布者和订阅者两种…

【vue3|第20期】vue3中Vue Router路由器工作模式

日期:2024年8月6日 作者:Commas 签名:(ง •_•)ง 积跬步以致千里,积小流以成江海…… 注释:如果您觉得有所帮助,帮忙点个赞,也可以关注我,我们一起成长;如果有不对的地方&#xff…

生活生鲜超市小程序系统开发方案

生活生鲜超市小程序系统是集商品浏览、在线下单、支付结算、物流配送、会员管理等功能于一体。是为了满足现代消费者对新鲜食品购买的便利性与即时性需求。 适用于:生鲜超市、百货、连锁、水果、批发、便民、果蔬、食品、食材、鲜果、特产、海鲜等店铺。一、目标用户…

Redis相关介绍

本文介绍了Redis,一种开源的内存数据结构存储系统,强调其高性能、多种数据结构支持、内存存储、持久化策略、发布订阅功能及工作原理。 Redis的介绍 Redis(Remote Dictionary Server),即远程字典服务,是一…