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写的服务监控程序实例
Jan 31 Python
Django查找网站项目根目录和对正则表达式的支持
Jul 15 Python
举例讲解Django中数据模型访问外键值的方法
Jul 21 Python
Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容
Feb 23 Python
Python图像处理之图像的缩放、旋转与翻转实现方法示例
Jan 04 Python
python pandas模块基础学习详解
Jul 03 Python
python实现统计代码行数的小工具
Sep 19 Python
python selenium循环登陆网站的实现
Nov 04 Python
基于YUV 数据格式详解及python实现方式
Dec 09 Python
Python基础之进程详解
May 21 Python
Python 循环读取数据内存不足的解决方案
May 25 Python
python热力图实现的完整实例
Jun 25 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关联数组的10个操作技巧
2013/01/21 PHP
php函数间的参数传递(值传递/引用传递)
2013/09/23 PHP
分享php分页的功能模块
2015/06/16 PHP
yii2.0整合阿里云oss的示例代码
2017/09/19 PHP
PHP面向对象程序设计之对象克隆clone和魔术方法__clone()用法分析
2019/06/12 PHP
laravel实现前后台路由分离的方法
2019/10/13 PHP
游戏人文件夹程序 ver 3.0
2006/07/14 Javascript
非常不错的一个javascript 类
2006/11/07 Javascript
jquery UI 1.72 之datepicker
2009/12/29 Javascript
用JS判断IE版本的代码 超管用!
2011/08/09 Javascript
html组件不可输入(只读)同时任何组件都有效
2013/04/01 Javascript
可选择和输入的下拉列表框示例
2013/11/05 Javascript
js中call与apply的用法小结
2013/12/28 Javascript
jquery实现仿新浪微博带动画效果弹出层代码(可关闭、可拖动)
2015/10/12 Javascript
浅谈jQuery animate easing的具体使用方法(推荐)
2016/06/17 Javascript
Bootstrap编写一个同时适用于PC、平板、手机的登陆页面
2016/06/30 Javascript
JS jQuery使用正则表达式去空字符的简单实现代码
2017/05/20 jQuery
nodejs 图解express+supervisor+ejs的用法(推荐)
2017/09/08 NodeJs
vue监听键盘事件的快捷方法【推荐】
2018/07/11 Javascript
vue权限路由实现的方法示例总结
2018/07/29 Javascript
微信小程序如何获取手机验证码
2018/11/04 Javascript
微信小程序保存多张图片的实现方法
2019/03/05 Javascript
node.js中npm包管理工具用法分析
2020/02/14 Javascript
Python根据区号生成手机号码的方法
2015/07/08 Python
Python实现的Excel文件读写类
2015/07/30 Python
Python使用Dijkstra算法实现求解图中最短路径距离问题详解
2018/05/16 Python
Python常见数据类型转换操作示例
2019/05/08 Python
python制作微博图片爬取工具
2021/01/16 Python
行政经理岗位职责
2013/11/09 职场文书
如何客观的进行自我评价
2013/12/17 职场文书
2014年五一促销活动方案
2014/03/09 职场文书
新员工试用期自我鉴定
2014/04/17 职场文书
担保书范文
2015/01/20 职场文书
2015年求职自荐信范文
2015/03/04 职场文书
严以用权专题学习研讨会发言材料
2015/11/09 职场文书
德劲DE1105机评
2022/04/05 无线电