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备份Mysql脚本
Aug 11 Python
初步解析Python下的多进程编程
Apr 28 Python
用python写个自动SSH登录远程服务器的小工具(实例)
Jun 17 Python
Python 字符串与数字输出方法
Jul 16 Python
使用TensorFlow实现简单线性回归模型
Jul 19 Python
Django如何将URL映射到视图
Jul 29 Python
ubuntu 18.04 安装opencv3.4.5的教程(图解)
Nov 04 Python
Python利用matplotlib绘制约数个数统计图示例
Nov 26 Python
使用Python测试Ping主机IP和某端口是否开放的实例
Dec 17 Python
Python 多进程、多线程效率对比
Nov 19 Python
PyCharm 解决找不到新打开项目的窗口问题
Jan 15 Python
python向xls写入数据(包括合并,边框,对齐,列宽)
Feb 02 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多进程编程之僵尸进程问题的理解
2017/10/15 PHP
PHP实现按之字形顺序打印二叉树的方法
2018/01/16 PHP
jquery 常用操作整理 基础入门篇
2009/10/14 Javascript
JavaScript 选中文字并响应获取的实现代码
2011/08/28 Javascript
Javascript图像处理—为矩阵添加常用方法
2012/12/27 Javascript
JS获取url链接字符串 location.href
2013/12/23 Javascript
javascript实现随时变化着的背景颜色
2015/04/02 Javascript
JS获取CSS样式(style/getComputedStyle/currentStyle)
2016/01/19 Javascript
Bootstrap Paginator分页插件使用方法详解
2016/05/30 Javascript
JS实现iframe编辑器光标位置插入内容的方法(兼容IE和Firefox)
2016/06/24 Javascript
jquery设置表单元素为不可用的简单代码
2016/07/04 Javascript
微信小程序--组件(swiper)详细介绍
2017/06/13 Javascript
JavaScript实现开关等效果
2017/09/08 Javascript
微信小程序实现城市列表选择
2018/06/05 Javascript
浅谈webpack4.x 入门(一篇足矣)
2018/09/05 Javascript
基于layui框架响应式布局的一些使用详解
2019/09/16 Javascript
jquery实现有过渡效果的tab切换
2020/07/17 jQuery
Vue获取微博授权URL代码实例
2020/11/04 Javascript
[03:56]DOTA2完美大师赛趣味视频之小鸽子和Mineski打台球
2017/11/24 DOTA
Python中super的用法实例
2015/05/28 Python
Python文件读写w+和r+区别解析
2020/03/26 Python
python opencv把一张图片嵌入(叠加)到另一张图片上的实现代码
2020/06/11 Python
python批量处理多DNS多域名的nslookup解析实现
2020/06/28 Python
Python matplotlib读取excel数据并用for循环画多个子图subplot操作
2020/07/14 Python
伦敦平价潮流珠宝首饰品牌:Astrid & Miyu
2016/10/10 全球购物
以太网Ethernet IEEE802.3
2013/08/05 面试题
如何做好总经理助理
2013/11/12 职场文书
幼儿园运动会入场词
2014/02/10 职场文书
行政部工作岗位职责范本
2014/03/05 职场文书
含预算的公司户外活动方案
2014/08/16 职场文书
群众路线领导干部个人对照检查材料(集锦)
2014/09/23 职场文书
检讨书格式
2015/01/23 职场文书
民事诉讼答辩状范文
2015/05/21 职场文书
原告离婚代理词
2015/05/23 职场文书
2015年度个人工作总结报告
2015/10/24 职场文书
在CSS中映射鼠标位置并实现通过鼠标移动控制页面元素效果(实例代码)
2021/04/22 HTML / CSS