首页 > 编程语言 >不依靠for循环,Python如何对列表进行去重并保留排列顺序

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

时间:2024-08-15 12:58:44浏览次数:10  
标签:set OrderedDict Python 元素 列表 顺序 方法

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

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

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

图片

正文

1.set去重

示例代码如下所示:

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

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

2.OrderedDict去重

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

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

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

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

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

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

标签:set,OrderedDict,Python,元素,列表,顺序,方法
From: https://blog.csdn.net/weixin_53707653/article/details/141165240

相关文章

  • Python统计web日志中每天用户访问情况
    背景统计web日志中每天用户访问情况日志目录importosfromconcurrent.futuresimportProcessPoolExecutorfrommultiprocessingimportManager#全局日志目录配置LOG_DIR="/var/log/nginx"defget_log_access(file_name,count_dict):"""处理单个日志文......
  • 【Python快速入门和实践011】Python常用脚本-目标检测之VOC格式转YOLO格式脚本
    一、数据集介绍        NEU-DET数据集是由东北大学(NortheasternUniversity,简称NEU)发布的一个用于钢材表面缺陷检测的数据集。这个数据集特别设计用于支持和促进工业领域中的缺陷检测研究。NEU-DET数据集的一些主要特点包括:多样性和复杂性:数据集包含了多种类型......
  • 40、Python之面向对象:扩展的对象属性解析顺序(描述符 + MRO)
    引言在上一篇文章中,我们简单回顾了Python中在继承语境下的属性解析顺序,同时补充了能够控制、影响属性解析的3个函数/方法(2个魔术方法+1个内置函数),相信对Python中属性的解析,相较于MRO,有了更进一步的认识。今天这篇文章中,我们将考虑属性描述符存在的情况下,对于Python中的属性......
  • python之numpy (5 分割和复制)
    分割分割指将矩阵分割为几个小部分,以便于后续的计算需要。splitimportnumpyasnpm=np.random.random((3,3))print(m)sp=np.split(m,3,axis=0)ssp=np.split(m,3,axis=1)print(sp,ssp,sep='\n')[[0.373247510.933194940.18961048][0.814330810.377225750.00708......
  • python之numpy(4 选择数据及合并)
    选择数据importnumpyasnpm=np.random.random((3,3))print(m)print(m[0],m[1][1],sep='\n')print(m[1,1])print(m[1,:])print(m[:,1])结果:[[0.25960570.047399260.76332494][0.865032270.290489970.79591841][0.50535280.201822340.19601046]][......
  • windows保姆级的pycharm+anaconda搭建python虚拟环境
    (一)pycharm安装1.下载(1)从官网下载 ,一般来说选择社区版就够用了。我这里选择2024.1.6的windows版本OtherVersions-PyCharmGetpastreleasesandpreviousversionsofPyCharm.https://www.jetbrains.com/pycharm/download/other.html 2.安装(1)双击下载好的pycharm安......
  • PAT-1006 换个格式输出整数 python实现
    1.题目本题较为简单,只需要获取数字的各位数再分别按要求拼接到一起即可。2.代码如下  """输入:23423输出:BBSSS1234SS123"""#本题较为简单,只需要获取数字的各位数再分别按要求拼接到一起即可n=int(input())#获取输入的数字r......
  • python图片处理
    设置图片像素fromPILimportImagedefset_image(path,width=280):"""设置图片像素"""#打开图片image=Image.open(path)#原来大小original_width,original_height=image.size#设置新的图片大小new_width,new_height=w......
  • java语言,MySQL数据库;电影推荐网站 30760(免费领源码)计算机毕业设计项目推荐万套实战教
    摘 要随着互联网时代的到来,同时计算机网络技术高速发展,网络管理运用也变得越来越广泛。因此,建立一个B/S结构的电影推荐网站;电影推荐网站的管理工作系统化、规范化,也会提高平台形象,提高管理效率。本电影推荐网站是针对目前电影推荐网站的实际需求,从实际工作出发,对过去的电影......
  • java语言,MySQL数据库;基于Web的高校知识共享系统设计与实现 32050(免费领源码)计算机毕业
    摘 要信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对高校知识共享系统等问题,对高校知识共享系统进行研究分析,然后开发设计出高校知识共享系统以......