Python对列表去重的多种方法(四种方法)


Posted in Python onDecember 05, 2017

无聊统计了下列表去重到底有多少种方法。下面小编给大家总结一下,具体内容详情如下;

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

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

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

orgList = [1,0,3,7,7,5]
#list()方法是把字符串str或元组转成数组
formatList = list(set(orgList))
print (formatList)

结果:

[0, 1, 3, 5, 7]

2. 使用keys()方法

orgList = [1,0,3,7,7,5]
#list()方法是把字符串str或元组转成数组
formatList = list({}.fromkeys(orgList).keys())
print (formatList)

结果:

[0, 1, 3, 5, 7]

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

3. 循环遍历法

orgList = [1,0,3,7,7,5]
formatList = []
for id in orgList:
 if id not in formatList:
  formatList.append(id)
print (formatList)

结果:

[1, 0, 3, 7, 5]
but,这样的代码不够简洁,不够高端

4. 按照索引再次排序

orgList = [1,0,3,7,7,5]
formatList = list(set(orgList))
formatList.sort(key=orgList.index)
print (formatList)

结果:

[1, 0, 3, 7, 5]

总结

以上所述是小编给大家介绍的Python对列表去重的多种方法(四种方法),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
Python字符串替换实例分析
May 11 Python
django项目运行因中文而乱码报错的几种情况解决
Nov 07 Python
PyQt4实现下拉菜单可供选择并打印出来
Apr 20 Python
Python工厂函数用法实例分析
May 14 Python
matplotlib subplots 设置总图的标题方法
May 25 Python
python监控文件并且发送告警邮件
Jun 21 Python
使用Python AIML搭建聊天机器人的方法示例
Jul 09 Python
python实现网站用户名密码自动登录功能
Aug 09 Python
Python之数据序列化(json、pickle、shelve)详解
Aug 30 Python
Python字典常见操作实例小结【定义、添加、删除、遍历】
Oct 25 Python
python神经网络编程实现手写数字识别
May 27 Python
python的链表基础知识点
Sep 13 Python
详解Python在七牛云平台的应用(一)
Dec 05 #Python
Python 快速实现CLI 应用程序的脚手架
Dec 05 #Python
python调用Delphi写的Dll代码示例
Dec 05 #Python
Python字典数据对象拆分的简单实现方法
Dec 05 #Python
python reduce 函数使用详解
Dec 05 #Python
有趣的python小程序分享
Dec 05 #Python
详细分析python3的reduce函数
Dec 05 #Python
You might like
php将数据库中的电话号码读取出来并生成图片
2008/08/31 PHP
windows服务器中检测PHP SSL是否开启以及开启SSL的方法
2014/04/25 PHP
php上传大文件失败的原因及应对策略
2015/10/20 PHP
php数据库操作model类(使用__call方法)
2016/11/16 PHP
Codeigniter里的无刷新上传的实现代码
2019/04/14 PHP
php并发加锁问题分析与设计代码实例讲解
2021/02/26 PHP
一些不错的js函数ajax
2008/08/20 Javascript
node-webkit打包成exe文件被360误报木马的解决方法
2015/03/11 Javascript
JavaScript中的replace()方法使用详解
2015/06/06 Javascript
jQuery+PHP星级评分实现方法
2015/10/02 Javascript
学习JavaScript设计模式(继承)
2015/11/26 Javascript
详解JS中的柯里化(currying)
2017/08/17 Javascript
JavaScript ES6箭头函数使用指南
2018/12/30 Javascript
详解vue-router的Import异步加载模块问题的解决方案
2020/05/13 Javascript
PHP 502bad gateway原因及解决方案
2020/11/13 Javascript
深入源码解析Python中的对象与类型
2015/12/11 Python
Python模拟登录验证码(代码简单)
2016/02/06 Python
Python中的数据对象持久化存储模块pickle的使用示例
2016/03/03 Python
python实现旋转和水平翻转的方法
2018/10/25 Python
详解python多线程之间的同步(一)
2019/04/03 Python
详解PyCharm安装MicroPython插件的教程
2019/06/24 Python
python yield关键词案例测试
2019/10/15 Python
在Pytorch中使用Mask R-CNN进行实例分割操作
2020/06/24 Python
python 如何引入协程和原理分析
2020/11/30 Python
python 对xml解析的示例
2021/02/27 Python
新电JAVA笔试题目
2014/08/31 面试题
名词解释型面试题(主要是网络)
2013/12/27 面试题
Ruby如何实现动态方法调用
2012/11/18 面试题
给医务人员表扬信
2014/01/12 职场文书
大型车展策划方案
2014/02/01 职场文书
简单的项目建议书模板
2014/03/12 职场文书
孝老爱亲模范事迹材料
2014/05/25 职场文书
党风廉政建设个人总结
2015/03/06 职场文书
办公室规章制度范本
2015/08/04 职场文书
党性修养心得体会2016
2016/01/21 职场文书
使用pycharm运行flask应用程序的详细教程
2021/06/07 Python