python消除序列的重复值并保持顺序不变的实例


Posted in Python onNovember 08, 2018

python 消除序列的重复值,并保持原来顺序

1、如果仅仅消除重复元素,可以简单的构造一个集合

$ python
Python 3.5.2 (default, Nov 23 2017, 16:37:01) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> a = [1 , 3, 5, 1, 8, 1, 5]
>>> set(a)
{8, 1, 3, 5}
>>>

2、利用集合或者生成器解决:值必须是hashable类型

$ python
Python 3.5.2 (default, Nov 23 2017, 16:37:01) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> def dupe(items):
... seen = set()
... for item in items:
... if item not in seen:
... yield item
... seen.add(item)
... 
>>> a = [1 , 3, 5, 1, 8, 1, 5]
>>> list(dupe(a))
[1, 3, 5, 8]
>>>

3、消除元素不可哈希:如字典类型

Python 3.5.2 (default, Nov 23 2017, 16:37:01) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> def rem(items, key=None):
... seen = set()
... for item in items:
... va = item if key is None else key(item)
... if va not in seen:
... yield item
... seen.add(va)
... 
>>> a = [ {'x':1, 'y':2}, {'x':1, 'y':3}, {'x':1, 'y':2}, {'x':2, 'y':4}]>>> list(rem(a, key=lambda d: (d['x'],d['y'])))
[{'y': 2, 'x': 1}, {'y': 3, 'x': 1}, {'y': 4, 'x': 2}]
>>> list(rem(a, key=lambda d: d['x']))
[{'y': 2, 'x': 1}, {'y': 4, 'x': 2}]

>>>>>> #lambda is an anonymous function:
... fuc = lambda : 'haha'
>>> print (f())
>>> print (fuc())
haha
>>>

以上这篇python消除序列的重复值并保持顺序不变的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
在Python中使用HTMLParser解析HTML的教程
Apr 29 Python
Python for Informatics 第11章 正则表达式(一)
Apr 21 Python
Python通过future处理并发问题
Oct 17 Python
python爬取各类文档方法归类汇总
Mar 22 Python
django传值给模板, 再用JS接收并进行操作的实例
May 28 Python
完美解决Python 2.7不能正常使用pip install的问题
Jun 12 Python
python 实现语音聊天机器人的示例代码
Dec 02 Python
python远程调用rpc模块xmlrpclib的方法
Jan 11 Python
利用pyinstaller打包exe文件的基本教程
May 02 Python
python常见字符串处理函数与用法汇总
Oct 30 Python
python3 正则表达式基础廖雪峰
Mar 25 Python
使用pandas实现筛选出指定列值所对应的行
Dec 13 Python
Django中的forms组件实例详解
Nov 08 #Python
python微元法计算函数曲线长度的方法
Nov 08 #Python
python实现简单的单变量线性回归方法
Nov 08 #Python
python/sympy求解矩阵方程的方法
Nov 08 #Python
python生成lmdb格式的文件实例
Nov 08 #Python
python实现嵌套列表平铺的两种方法
Nov 08 #Python
python用列表生成式写嵌套循环的方法
Nov 08 #Python
You might like
解析ajax事件的调用顺序
2013/06/17 PHP
PHP连接MySQL查询结果中文显示乱码解决方法
2013/10/25 PHP
详解PHP导入导出CSV文件
2014/11/03 PHP
php判断str字符串是否是xml格式数据的方法示例
2017/07/26 PHP
学习从实践开始之jQuery插件开发 菜单插件开发
2012/05/03 Javascript
常用的几段javascript代码分享
2014/03/25 Javascript
JS获取当前网页大小以及屏幕分辨率等
2014/09/05 Javascript
JS使用oumousemove和oumouseout动态改变图片显示的方法
2015/03/31 Javascript
分享一个插件实现水珠自动下落效果
2016/06/01 Javascript
javascript与jquery动态创建html元素示例
2016/07/25 Javascript
JavaScript 对象详细整理总结
2016/09/29 Javascript
JavaScript基于对象去除数组重复项的方法
2016/10/09 Javascript
基于jQuery实现的幻灯图片切换
2016/12/02 Javascript
js实现表格筛选功能
2017/01/18 Javascript
微信小程序 UI与容器组件总结
2017/02/21 Javascript
深入掌握 react的 setState的工作机制
2017/09/27 Javascript
详解Vue template 如何支持多个根结点
2020/02/10 Javascript
基于jquery实现彩色投票进度条代码解析
2020/08/26 jQuery
Python实现基于多线程、多用户的FTP服务器与客户端功能完整实例
2017/08/18 Python
python使用SMTP发送qq或sina邮件
2017/10/21 Python
扩展Django admin的list_filter()可使用范围方法
2019/08/21 Python
Python+OpenCV 实现图片无损旋转90°且无黑边
2019/12/12 Python
python实现数据结构中双向循环链表操作的示例
2020/10/09 Python
CSS3使用border-radius属性制作圆角
2014/12/22 HTML / CSS
CSS3 Notes: -webkit-box-reflect实现倒影的实例
2016/12/08 HTML / CSS
LA MER海蓝之谜美国官网:传奇面霜
2016/08/27 全球购物
澳大利亚实惠时尚女装商店:Katies
2019/06/16 全球购物
职工趣味运动会方案
2014/02/10 职场文书
绩效考核实施方案
2014/03/18 职场文书
解除劳动合同协议书
2014/04/14 职场文书
国家税务局干部作风整顿整改措施
2014/09/18 职场文书
捐款通知怎么写
2015/04/24 职场文书
搞笑结婚保证书
2015/05/08 职场文书
中学校园广播稿
2015/08/18 职场文书
小学五年级(说明文3篇)
2019/08/13 职场文书
MySQL的存储函数与存储过程的区别解析
2022/04/08 MySQL