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文档生成工具pydoc使用介绍
Jun 02 Python
python实现unicode转中文及转换默认编码的方法
Apr 29 Python
python实现发送邮件功能代码
Dec 14 Python
python实现三次样条插值
Dec 17 Python
解决Pycharm调用Turtle时 窗口一闪而过的问题
Feb 16 Python
Python使用gluon/mxnet模块实现的mnist手写数字识别功能完整示例
Dec 18 Python
基于python3.7利用Motor来异步读写Mongodb提高效率(推荐)
Apr 29 Python
基于FME使用Python过程图解
May 13 Python
python3读取autocad图形文件.py实例
Jun 05 Python
Python OpenCV读取中文路径图像的方法
Jul 02 Python
Django windows使用Apache实现部署流程解析
Oct 12 Python
Django-simple-captcha验证码包使用方法详解
Nov 28 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实现维护文件代码
2007/06/14 PHP
使用php shell命令合并图片的代码
2011/06/23 PHP
需要注意的几个PHP漏洞小结
2012/02/05 PHP
从零开始学YII2框架(一)通过Composer安装Yii2框架
2014/08/20 PHP
Yii中render和renderPartial的区别
2014/09/03 PHP
Ubuntu server 11.04安装memcache及php使用memcache来存储session的方法
2016/05/31 PHP
详解php中空字符串和0之间的关系
2016/10/23 PHP
PHP实现留言板功能的详细代码
2017/03/25 PHP
javascript setAttribute, getAttribute 在不同浏览器上的不同表现
2010/08/05 Javascript
jQuery中data()方法用法实例
2014/12/27 Javascript
jQuery菜单插件用法实例
2015/07/25 Javascript
js鼠标点击图片切换效果实现代码
2015/11/19 Javascript
利用JS实现数字增长
2016/07/28 Javascript
jQuery EasyUI右键菜单实现关闭标签/选项卡
2016/10/10 Javascript
详解vee-validate的使用个人小结
2017/06/07 Javascript
bootstrap table服务端实现分页效果
2017/08/10 Javascript
解决node修改后需频繁手动重启的问题
2018/05/13 Javascript
浅谈Fetch 数据交互方式
2018/12/20 Javascript
详解node.js 事件循环
2020/07/22 Javascript
利用js实现简易红绿灯
2020/10/15 Javascript
[51:39]DOTA2-DPC中国联赛 正赛 Magma vs LBZS BO3 第二场 2月7日
2021/03/11 DOTA
python完成FizzBuzzWhizz问题(拉勾网面试题)示例
2014/05/05 Python
Python线程的两种编程方式
2015/04/14 Python
python使用wxPython打开并播放wav文件的方法
2015/04/24 Python
利用python生成一个导出数据库的bat脚本文件的方法
2016/12/30 Python
python构建深度神经网络(续)
2018/03/10 Python
Python global全局变量函数详解
2018/09/18 Python
Python 将json序列化后的字符串转换成字典(推荐)
2020/01/06 Python
html5基础标签(html5视频标签 html5新标签用法)
2013/12/30 HTML / CSS
美国尼曼百货官网:Neiman Marcus
2019/09/05 全球购物
兰蔻俄罗斯官方网站:Lancome俄罗斯
2019/12/09 全球购物
学前教育毕业生自荐信范文
2013/12/24 职场文书
双方协议书
2014/04/22 职场文书
新法人代表任命书
2014/06/06 职场文书
三严三实学习心得体会(精选N篇)
2016/01/05 职场文书
24句精辟的现实社会语录,句句扎心,道尽人性
2019/08/29 职场文书