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从入门到精通(DAY 2)
Dec 20 Python
python3+PyQt5实现自定义分数滑块部件
Apr 24 Python
详解python如何在django中为用户模型添加自定义权限
Oct 15 Python
python用插值法绘制平滑曲线
Feb 19 Python
python解析json串与正则匹配对比方法
Dec 20 Python
python调用staf自动化框架的方法
Dec 26 Python
python gensim使用word2vec词向量处理中文语料的方法
Jul 05 Python
Python日志无延迟实时写入的示例
Jul 11 Python
详解python3中用HTMLTestRunner.py报ImportError: No module named 'StringIO'如何解决
Aug 27 Python
安装完Python包然后找不到模块的解决步骤
Feb 13 Python
python设置代理和添加镜像源的方法
Feb 14 Python
python+selenium+chrome批量文件下载并自动创建文件夹实例
Apr 27 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
Dedecms常用函数解析
2008/02/01 PHP
PHP程序开发范例学习之表单 获取文本框的值
2011/08/08 PHP
几种有用的变型 PHP中循环语句的用法介绍
2012/01/30 PHP
PHPMailer邮件发送的实现代码
2013/05/04 PHP
PHP图片裁剪函数(保持图像不变形)
2014/05/04 PHP
PHP制作图形验证码代码分享
2014/10/23 PHP
php中try catch捕获异常实例详解
2020/08/06 PHP
Javascript之文件操作
2007/03/07 Javascript
JS高级笔记
2011/07/13 Javascript
JQuery伸缩导航练习示例
2013/11/13 Javascript
jQuery表格排序组件-tablesorter使用示例
2014/05/26 Javascript
Extjs根据条件设置表格某行背景色示例
2014/07/23 Javascript
点击A元素触发B元素的事件在IE8下会识别成A元素
2014/09/04 Javascript
使用js画图之正弦曲线
2015/01/12 Javascript
AngularJS实现表单手动验证和表单自动验证
2015/12/09 Javascript
分分钟玩转Vue.js组件(二)
2017/03/01 Javascript
如何从零开始利用js手写一个Promise库详解
2018/04/19 Javascript
npm scripts 使用指南详解
2018/10/08 Javascript
Vue3.0数据响应式原理详解
2019/10/09 Javascript
python里大整数相乘相关技巧指南
2014/09/12 Python
浅谈Python中列表生成式和生成器的区别
2015/08/03 Python
django 按时间范围查询数据库实例代码
2018/02/11 Python
Django实现一对多表模型的跨表查询方法
2018/12/18 Python
Python直接赋值、浅拷贝与深度拷贝实例分析
2019/06/18 Python
python实现DEM数据的阴影生成的方法
2019/07/23 Python
Python类中方法getitem和getattr详解
2019/08/30 Python
pytorch制作自己的LMDB数据操作示例
2019/12/18 Python
python实现图片,视频人脸识别(dlib版)
2020/11/18 Python
如何用Python提取10000份log中的产品信息
2021/01/14 Python
python切片作为占位符使用实例讲解
2021/02/17 Python
网络管理专业求职信
2014/03/15 职场文书
老公保证书范文
2014/04/29 职场文书
学校关爱留守儿童活动方案
2014/08/27 职场文书
2014年加油站工作总结
2014/12/04 职场文书
人事任命通知书
2015/04/21 职场文书
公司客户答谢酒会祝酒词
2015/08/11 职场文书