首页 > 编程语言 >Python对列表去重的4种方法

Python对列表去重的4种方法

时间:2023-09-10 10:01:00浏览次数:48  
标签:formatList Python orgList list 列表 set print 方法 id

开发中对数组、列表去重是非常常见的需求,对一个list中的id进行去重,有下面几种方法,前面两种方法不能保证顺序, 后面两种方法可以保持原来的顺序。

下面的代码都在Python3下测试通过, Python2下请自行测试

1. 使用set的特型,python的set和其他语言类似, 是一个无序不重复元素集

1

2

3

4


orgList = [1,0,3,7,7,5]

#list()方法是把字符串str或元组转成数组

formatList = list(set(orgList))

print (formatList)


结果:

1


[0, 1, 3, 5, 7]



2. 使用keys()方法

1

2

3

4


orgList = [1,0,3,7,7,5]

#list()方法是把字符串str或元组转成数组

formatList = list({}.fromkeys(orgList).keys())

print (formatList)


结果:

1


[0, 1, 3, 5, 7]



上面两种方法的问题是:结果是没有保持原来的顺序。


3. 循环遍历法

1

2

3

4

5

6


orgList = [1,0,3,7,7,5]

formatList = []

for id in orgList:

if id not in formatList:

formatList.append(id)

print (formatList)


结果:

1


[1, 0, 3, 7, 5]


but,这样的代码不够简洁,不够高端


4. 按照索引再次排序

1

2

3

4


orgList = [1,0,3,7,7,5]

formatList = list(set(orgList))

formatList.sort(key=orgList.index)

print (formatList)


结果:

1


[1, 0, 3, 7, 5]


标签:formatList,Python,orgList,list,列表,set,print,方法,id
From: https://blog.51cto.com/u_16191847/7423630

相关文章

  • Python日志库Loguru教程
    1.为什么选用logurupython自带的logging模块,需要完成复杂的配置才能很好的使用,基本生产环境都需要进行二次包装。loguru专门梳理了这方面的问题,可以通过简单直接的配置完成你的需求。简单的例子:fromloguruimportloggerlogger.info("hellofromloguru")输出到标准输出......
  • 个人的一种简单一阶逻辑命题真值判定代数化方法与罗素的一些悖论的杂谈
    0.逻辑哲学相对于数学哲学来说可能更让人难绷,但既然归入哲学,意味着讨论这玩意儿也就图一乐,大家看着玩就好。显然可能有人以前也有过和我类似的一些想法,而且可能还不少。但是因为毕竟算不上什么主流,所以写出来也大概率会有一部分人没想到过。那么这篇文字对于读者的娱乐性就达到......
  • 【Python基础】字符串常用方法
    replace()方法replace()方法把字符串中的old(旧字符串)替换成new(新字符串),如果指定第三个参数max,则替换不超过max次。str="ThisisATest"print(str.replace("is","was"))#ThwaswasATest"print(str.replace("is","was",1))#Thwas......
  • python爬虫练习2-百度热榜
    importrequestsfromlxmlimportetreeurl='https://top.baidu.com/board?tab=realtime'headers={'User-Agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/116.0.0.0Safari/537.36&......
  • Java批量插入数据方法对比
    一.环境数据库MySql8.0.2Maven+IDEA二.方法配置目录结构 POM.xml依赖<dependencies>   <!--https://mvnrepository.com/artifact/mysql/mysql-connector-java-->   <dependency>       <groupId>mysql</groupId>       <artifactId&g......
  • 使用方括号方法取动态对象名
    前两天工作中需要这个需求,切换的时候选中的数据列表是动态变化的,就用[]方括号法取当前选中值的对象用的是elementui的radio和table组成的,上面是标签下面是标签下的table因为el-radio的样式和界面有一点出入修改样式也麻烦,自己组合写了一个,效果图类似下面这种<el-radio-groupv-mod......
  • Python开发实例(十五)电子邮件自动化:编写一个程序,自动发送电子邮件或处理收件箱
    在这个实例中,我们将使用Python编写一个程序,实现自动发送电子邮件的功能。我们将使用Python的smtplib库来发送电子邮件。首先,请确保你已经安装了smtplib库。如果没有安装,可以通过以下命令来安装:pipinstallsecure-smtplib下面是一个自动发送电子邮件的Python程序:importsmtplibfro......
  • Python学习笔记-Python判断语句
    布尔类型和比较运算符布尔类型进行判断,只有2个结果:是否程序中,如何描述:是或否?使用:布尔类型。Python中常用的6种值(数据)的类型类型描述说明数字(Number)支持整数(int)浮点数(float)复数(complex)布尔(bool)整数(int),如10、-10浮点数(float),如13.14、-13.14复数(complex),如4+3j,以j结尾表示复数布尔(bool)......
  • 新人如何快速学会Python
    要快速学会Python,首先要了解Python的基本语法和数据类型。Python是一种解释型语言,具有简单易学、高效开发、库丰富等特点。首先,需要掌握Python的基本语法,例如变量、数据类型、控制流语句、函数等。可以通过阅读官方文档、在线教程、书籍等方式进行学习。同时,可以尝试编写简单的Pyt......
  • python学习笔记-celery介绍和使用
    一、celery介绍1、简介celery是分布式任务队列celery在执行任务时需要一个消息中间件来接收和发送消息,以及存储结果,一般使用rabbitmq,rediscelery的优先:简单:配置和使用比较简单高可用:当任务失败或执行过程中连接中断,celery会自动尝试重新执行快速:每分钟可处理上百万个任务灵活:几......