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 3.x 新特性及10大变化
Jun 12 Python
浅谈python中scipy.misc.logsumexp函数的运用场景
Jun 23 Python
使用Python实现简单的服务器功能
Aug 25 Python
mac下给python3安装requests库和scrapy库的实例
Jun 13 Python
python队列Queue的详解
May 10 Python
Python学习笔记之抓取某只基金历史净值数据实战案例
Jun 03 Python
TensorFlow2.1.0安装过程中setuptools、wrapt等相关错误指南
Apr 08 Python
python爬虫容易学吗
Jun 02 Python
Python reversed反转序列并生成可迭代对象
Oct 22 Python
Python jieba结巴分词原理及用法解析
Nov 05 Python
Python机器学习实战之k-近邻算法的实现
Nov 27 Python
Python可视化学习之seaborn绘制矩阵图详解
Feb 24 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 制作模板中使用的全局标记图文教程
2007/03/11 PHP
php无限极分类递归排序实现方法
2014/11/11 PHP
PHP实现的简单组词算法示例
2018/04/10 PHP
PHP数据源架构模式之表入口模式实例分析
2020/01/23 PHP
基于jQuery的图片剪切插件
2011/08/03 Javascript
基于jquery实现的鼠标拖拽元素复制并写入效果
2011/08/23 Javascript
按下回车键指向下一个位置的一个函数代码
2014/03/10 Javascript
JavaScript中神奇的call()方法
2015/03/12 Javascript
一道常被人轻视的web前端常见面试题(JS)
2016/02/15 Javascript
EasyUi中的Combogrid 实现分页和动态搜索远程数据
2016/04/01 Javascript
jQuery插件form-validation-engine正则表达式操作示例
2017/02/09 Javascript
微信小程序 页面跳转如何实现传值
2017/04/05 Javascript
vue router2.0二级路由的简单使用
2017/07/05 Javascript
Vue应用部署到服务器的正确方式
2017/07/15 Javascript
element-ui upload组件多文件上传的示例代码
2018/10/17 Javascript
基于ts的动态接口数据配置的详解
2019/12/18 Javascript
小程序实现tab标签页
2020/11/16 Javascript
[01:00:35]2018DOTA2亚洲邀请赛3月30日B组 EffcetVSMineski
2018/03/31 DOTA
Python 获取新浪微博的最新公共微博实例分享
2014/07/03 Python
Python functools模块学习总结
2015/05/09 Python
Python每天必学之bytes字节
2016/01/28 Python
Python协程的用法和例子详解
2017/09/09 Python
python MysqlDb模块安装及其使用详解
2018/02/23 Python
Python获取指定字符前面的所有字符方法
2018/05/02 Python
Python使用logging模块实现打印log到指定文件的方法
2018/09/05 Python
Python TestCase中的断言方法介绍
2019/05/02 Python
python3 sorted 如何实现自定义排序标准
2020/03/12 Python
在Django中预防CSRF攻击的操作
2020/03/13 Python
超市实习总结自我鉴定
2013/09/19 职场文书
财务管理专业毕业生求职信范文
2013/09/21 职场文书
招商经理岗位职责
2013/11/16 职场文书
通知书大全
2015/04/27 职场文书
2015教师节通讯稿
2015/07/20 职场文书
2017春节晚会开幕词
2016/03/03 职场文书
大学学生会主席竞选稿怎么写?
2019/08/19 职场文书
Mysql Online DDL的使用详解
2021/05/20 MySQL