当前位置: 首页 > news >正文

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

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

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

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

图片

正文

1.set去重

示例代码如下所示:

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

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

2.OrderedDict去重

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

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

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

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

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

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • <Qt> 系统 - 事件
  • 计算机网络——HTTP协议详解(上)
  • 7万字详解Apache Shiro面试题、示例、参考答案
  • 文心快码 Baidu Comate 前端工程师观点分享:行业现状(二)
  • 贷齐乐系统最新版SQL注入(绕过WAF可union select跨表查询)
  • 字符串函数!!!(续)(C语言)
  • Git 大文件存储 (LFS)
  • uniapp跳转携带参数
  • zigbee笔记:十、ZStack(2.3.0-1.4.0)的OSAL使用分析
  • Spark SQL Catalyst工作流程
  • 如何高效记录并整理编程学习笔记?
  • 【论文阅读】Far3D: Expanding the Horizon for Surround-view 3D Object Detection
  • Apache SeaTunnel 2.3.5 Zeta-Server集群环境搭建与使用
  • 【安卓】调用摄像头和相册
  • Ubuntu18.04 配置EtherCAT主站IGH SOEM
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • 08.Android之View事件问题
  • canvas 高仿 Apple Watch 表盘
  • const let
  • IOS评论框不贴底(ios12新bug)
  • JavaSE小实践1:Java爬取斗图网站的所有表情包
  • js如何打印object对象
  • KMP算法及优化
  • Nodejs和JavaWeb协助开发
  • scrapy学习之路4(itemloder的使用)
  • SOFAMosn配置模型
  • 对象引论
  • 工作手记之html2canvas使用概述
  • 少走弯路,给Java 1~5 年程序员的建议
  • 思维导图—你不知道的JavaScript中卷
  • 提升用户体验的利器——使用Vue-Occupy实现占位效果
  • 为视图添加丝滑的水波纹
  • 小程序01:wepy框架整合iview webapp UI
  • 一个SAP顾问在美国的这些年
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • 2017年360最后一道编程题
  • Android开发者必备:推荐一款助力开发的开源APP
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • ​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​
  • ​学习一下,什么是预包装食品?​
  • #Datawhale AI夏令营第4期#多模态大模型复盘
  • (1)(1.8) MSP(MultiWii 串行协议)(4.1 版)
  • (160)时序收敛--->(10)时序收敛十
  • (2024最新)CentOS 7上在线安装MySQL 5.7|喂饭级教程
  • (C语言)共用体union的用法举例
  • (day18) leetcode 204.计数质数
  • (二)延时任务篇——通过redis的key监听,实现延迟任务实战
  • (转)shell中括号的特殊用法 linux if多条件判断
  • .net core 管理用户机密
  • .net core使用EPPlus设置Excel的页眉和页脚
  • .NET Core中如何集成RabbitMQ
  • .NET 常见的偏门问题
  • .NET 给NuGet包添加Readme
  • .net8.0与halcon编程环境构建
  • .NET面试题(二)