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实现包含min函数的栈
Apr 29 Python
用python编写第一个IDA插件的实例
May 29 Python
pytorch: tensor类型的构建与相互转换实例
Jul 26 Python
使用python对文件中的单词进行提取的方法示例
Dec 21 Python
Python字符串的全排列算法实例详解
Jan 07 Python
Python3实现的回文数判断及罗马数字转整数算法示例
Mar 27 Python
Python实现的ftp服务器功能详解【附源码下载】
Jun 26 Python
利用matplotlib实现根据实时数据动态更新图形
Dec 13 Python
python实现爱奇艺登陆密码RSA加密的方法示例详解
May 27 Python
利用Python实现Excel的文件间的数据匹配功能
Jun 16 Python
python 利用opencv实现图像网络传输
Nov 12 Python
python 实用工具状态机transitions
Nov 21 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
服务器端解压缩zip的脚本
2006/12/22 PHP
php实现屏蔽掉黑帽SEO的搜索关键字
2015/04/15 PHP
zend framework中使用memcache的方法
2016/03/04 PHP
php使用GD2绘制几何图形示例
2017/02/15 PHP
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
2019/12/01 PHP
Thinkphp 框架扩展之行为扩展原理与实现方法分析
2020/04/23 PHP
为数据添加append,remove功能
2006/10/03 Javascript
js操纵跨frame的三级联动select下拉选项实例介绍
2013/05/19 Javascript
document.getElementBy("id")与$("#id")有什么区别
2013/09/22 Javascript
JavaScript中的公有、私有、特权和静态成员用法分析
2014/11/20 Javascript
javascript原型链继承用法实例分析
2015/01/28 Javascript
使用jQuery获得内容以及内容的属性
2015/02/26 Javascript
JQuery替换DOM节点的方法
2015/06/11 Javascript
基于javascript html5实现3D翻书特效
2016/03/14 Javascript
vue 组件使用中的一些细节点
2018/04/25 Javascript
jQuery-ui插件sortable实现自由拖动排序
2018/12/01 jQuery
微信小程序3种位置API的使用方法详解
2019/08/05 Javascript
基于vue hash模式微信分享#号的解决
2020/09/07 Javascript
vue实现放大镜效果
2020/09/17 Javascript
[04:19]完美世界携手游戏风云打造 卡尔工作室模型介绍篇
2013/04/24 DOTA
[01:42]DOTA2 – 虚无之灵
2019/08/25 DOTA
详解Python设计模式编程中观察者模式与策略模式的运用
2016/03/02 Python
python安装twisted的问题解析
2018/08/21 Python
python中通过selenium简单操作及元素定位知识点总结
2019/09/10 Python
宝塔面板出现“open_basedir restriction in effect. ”的解决方法
2021/03/14 PHP
HTML5注册表单的自动聚焦与占位文本示例代码
2013/07/19 HTML / CSS
Blank NYC官网:夹克、牛仔裤等
2020/12/16 全球购物
英国领先的高级美容和在线皮肤诊所:Face the Future
2020/06/17 全球购物
给水排水工程专业毕业生推荐信
2013/10/28 职场文书
人事专员岗位职责范本
2014/03/04 职场文书
水利水电专业自荐信
2014/07/08 职场文书
委托书格式要求
2015/01/28 职场文书
开会迟到检讨书范文
2015/05/06 职场文书
新闻稿件写作范文
2015/07/18 职场文书
Log4j.properties配置及其使用
2021/08/02 Java/Android
Redis+AOP+自定义注解实现限流
2022/06/28 Redis