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创建XML文档
Mar 01 Python
浅析Python编写函数装饰器
Mar 18 Python
详解Python判定IP地址合法性的三种方法
Mar 06 Python
Django框架实现逆向解析url的方法
Jul 04 Python
Python走楼梯问题解决方法示例
Jul 25 Python
pyttsx3实现中文文字转语音的方法
Dec 24 Python
Pytorch实现GoogLeNet的方法
Aug 18 Python
Python中zip()函数的简单用法举例
Sep 02 Python
opencv3/Python 稠密光流calcOpticalFlowFarneback详解
Dec 11 Python
Tensorflow实现多GPU并行方式
Feb 03 Python
学习Python爬虫的几点建议
Aug 05 Python
使用python画出逻辑斯蒂映射(logistic map)中的分叉图案例
Dec 11 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的urlencode()URL编码函数浅析
2011/08/09 PHP
如何在symfony中导出为CSV文件中的数据
2011/10/06 PHP
ecshop 批量上传(加入自定义属性)
2012/03/20 PHP
php/js获取客户端mac地址的实现代码
2013/07/08 PHP
PHP使用array_multisort对多个数组或多维数组进行排序
2014/12/16 PHP
js bind 函数 使用闭包保存执行上下文
2011/12/26 Javascript
jquery拖动插件(jquery.drag)使用介绍
2013/06/18 Javascript
使用js画图之画切线
2015/01/12 Javascript
js实现点击左右按钮轮播图片效果实例
2015/01/29 Javascript
jQuery中大家不太了解的几个方法
2015/03/04 Javascript
JS实现的集合去重,交集,并集,差集功能示例
2018/03/13 Javascript
vue实现随机验证码功能的实例代码
2019/04/30 Javascript
详解element-ui表格中勾选checkbox,高亮当前行
2019/09/02 Javascript
Node.js实现批量下载图片简单操作示例
2020/01/18 Javascript
vue在图片上传的时候压缩图片
2020/11/18 Vue.js
[49:35]2018DOTA2亚洲邀请赛3月30日 小组赛A组 KG VS TNC
2018/03/31 DOTA
Python简单遍历字典及删除元素的方法
2016/09/18 Python
python3.5+tesseract+adb实现西瓜视频或头脑王者辅助答题
2018/01/17 Python
Python pandas RFM模型应用实例详解
2019/11/20 Python
Python+Selenium随机生成手机验证码并检查页面上是否弹出重复手机号码提示框
2020/09/21 Python
如何利用pycharm进行代码更新比较
2020/11/04 Python
详解Sticky Footer 绝对底部的两种套路
2017/11/03 HTML / CSS
澳大利亚最受欢迎的美发用品目的地:AMR
2019/08/28 全球购物
泰国时尚电商:POMELO Fashion
2020/03/11 全球购物
抽象方法、抽象类怎样声明
2014/10/25 面试题
DTD的含义以及作用
2014/01/26 面试题
投标担保书范文
2014/04/02 职场文书
怒海潜将观后感
2015/06/11 职场文书
2016教师党员学习心得体会
2016/01/21 职场文书
《最后一头战象》教学反思
2016/02/16 职场文书
准备去美国留学,那么大学申请文书应该怎么写?
2019/08/12 职场文书
mysql字符串截取函数小结
2021/04/05 MySQL
Java实现多线程聊天室
2021/06/26 Java/Android
K8s部署发布Golang应用程序的实现方法
2021/07/16 Golang
PostGIS的安装与入门使用指南
2022/01/18 PostgreSQL
Java 数据结构七大排序使用分析
2022/04/02 Java/Android