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 os模块中的isfile()和isdir()函数均返回false问题解决方法
Feb 04 Python
Python 数据结构之堆栈实例代码
Jan 22 Python
python通过elixir包操作mysql数据库实例代码
Jan 31 Python
详解基于django实现的webssh简单例子
Jul 17 Python
深入浅析Python2.x和3.x版本的主要区别
Nov 30 Python
使用python将多个excel文件合并到同一个文件的方法
Jul 09 Python
Python @property使用方法解析
Sep 17 Python
利用python中的matplotlib打印混淆矩阵实例
Jun 16 Python
用python对oracle进行简单性能测试
Dec 05 Python
Python基于mediainfo批量重命名图片文件
Dec 29 Python
Pygame Rect区域位置的使用(图文)
Nov 17 Python
Python实现科学占卜 让视频自动打码
Apr 09 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
PHP定时执行任务的3种方法详解
2015/12/21 PHP
PHP对象的浅复制与深复制的实例详解
2017/10/26 PHP
JavaScript中json对象和string对象之间相互转化
2012/12/26 Javascript
jquery post方式传递多个参数值后台以数组的方式进行接收
2013/01/11 Javascript
Javascript事件实例详解
2013/11/06 Javascript
jQuery实现单击和鼠标感应事件
2015/02/01 Javascript
jQuery插件jcrop+Fileapi完美实现图片上传+裁剪+预览的代码分享
2015/04/22 Javascript
jQuery动态添加
2016/04/07 Javascript
JS之获取样式的简单实现方法(推荐)
2016/09/13 Javascript
livereload工具实现前端可视化开发【推荐】
2016/12/23 Javascript
深究AngularJS如何获取input的焦点(自定义指令)
2017/06/12 Javascript
vue移动端路由切换实例分析
2018/05/14 Javascript
JS实现json对象数组按对象属性排序操作示例
2018/05/18 Javascript
vue多层嵌套路由实例分析
2019/03/19 Javascript
微信小程序返回箭头跳转到指定页面实例解析
2019/10/08 Javascript
js实现简单掷骰子效果
2019/10/24 Javascript
js对象简介与基本用法示例
2020/03/13 Javascript
[07:43]《辉夜杯》公开赛晋级外卡赛战队—TRG训练生活探秘
2015/12/11 DOTA
[00:59]DOTA2英雄背景故事——上古巨神
2020/06/28 DOTA
python爬虫入门教程之点点美女图片爬虫代码分享
2014/09/02 Python
用Python制作简单的钢琴程序的教程
2015/04/01 Python
浅析python递归函数和河内塔问题
2017/04/18 Python
在python中按照特定顺序访问字典的方法详解
2018/12/14 Python
使用Python画股票的K线图的方法步骤
2019/06/28 Python
python实现列表的排序方法分享
2019/07/01 Python
Python3.x+迅雷x 自动下载高分电影的实现方法
2020/01/12 Python
Python代码注释规范代码实例解析
2020/08/14 Python
酒吧创业计划书
2014/01/18 职场文书
新文化运动的基本口号
2014/06/21 职场文书
团队拓展活动总结
2014/08/27 职场文书
2014机关党员干部“正风肃纪”思想汇报
2014/09/15 职场文书
2014年小学工作总结
2014/11/26 职场文书
领导干部学习三严三实心得体会
2016/01/05 职场文书
秀!学妹看见都惊呆的Python小招数!【详细语言特性使用技巧】
2021/04/27 Python
Jpa Specification如何实现and和or同时使用查询
2021/11/23 Java/Android
了解Kubernetes中的Service和Endpoint
2022/04/01 Servers