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读取json文件并将数据插入到mongodb的方法
Mar 23 Python
详解使用python crontab设置linux定时任务
Dec 08 Python
JavaScript中的模拟事件和自定义事件实例分析
Jul 27 Python
基于python指定包的安装路径方法
Oct 27 Python
python实现扫描ip地址的小程序
Apr 16 Python
使用Python代码实现Linux中的ls遍历目录命令的实例代码
Sep 07 Python
Python实现钉钉订阅消息功能
Jan 14 Python
Django实现列表页商品数据返回教程
Apr 03 Python
python初步实现word2vec操作
Jun 09 Python
关于多种方式完美解决Python pip命令下载第三方库的问题
Dec 21 Python
OpenCV3.3+Python3.6实现图片高斯模糊
May 18 Python
Python+DeOldify实现老照片上色功能
Jun 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
php mssql 数据库分页SQL语句
2008/12/16 PHP
ThinkPHP模版引擎之变量输出详解
2014/12/05 PHP
php截取html字符串及自动补全html标签的方法
2015/01/15 PHP
JavaScript 基于原型的对象(创建、调用)
2009/10/16 Javascript
JavaScript ( (__ = !$ + $)[+$] + ({} + $)[_/_] +({} + $)[_/_] )
2011/02/25 Javascript
js获取IP和PcName(IE)在vs中可用
2013/08/02 Javascript
js父窗口关闭时子窗口随之关闭完美解决方案
2014/04/29 Javascript
jQuery学习笔记之 Ajax操作篇(三) - 过程处理
2014/06/23 Javascript
Javascript实现的简单右键菜单类
2015/09/23 Javascript
JS简单获取及显示当前时间的方法
2016/08/03 Javascript
js调用刷新界面的几种方式
2017/05/03 Javascript
angularjs实现上拉加载和下拉刷新数据功能
2017/06/12 Javascript
js最简单的双向绑定实例讲解
2018/01/02 Javascript
关于Webpack dev server热加载失败的解决方法
2018/02/22 Javascript
使用bootstrap实现下拉框搜索功能的实例讲解
2018/08/10 Javascript
微信小程序顶部导航栏滑动tab效果
2019/01/28 Javascript
vue基本使用--refs获取组件或元素的实例
2019/11/07 Javascript
浅谈Vue2.4.0 $attrs与inheritAttrs的具体使用
2020/03/08 Javascript
JS PHP字符串截取函数实现原理解析
2020/08/29 Javascript
JavaScript判断数据类型有几种方法及区别介绍
2020/09/02 Javascript
详解Python基础random模块随机数的生成
2019/03/23 Python
django url到views参数传递的实例
2019/07/19 Python
完美解决TensorFlow和Keras大数据量内存溢出的问题
2020/07/03 Python
用纯CSS3实现网页中常见的小箭头
2017/10/16 HTML / CSS
Unix如何在一行中运行多个命令
2015/05/29 面试题
《故乡》教学反思
2014/04/10 职场文书
环保倡议书
2014/04/14 职场文书
伦敦奥运会的口号
2014/06/21 职场文书
邮政营业员岗位职责
2015/04/14 职场文书
会议简讯范文
2015/07/20 职场文书
民间借贷纠纷起诉书
2015/08/03 职场文书
SpringCloud的JPA连接PostgreSql的教程
2021/06/26 Java/Android
Redis 彻底禁用RDB持久化操作
2021/07/09 Redis
一文搞懂Redis中String数据类型
2022/04/03 Redis
Mysql 8.x 创建用户以及授予权限的操作记录
2022/04/18 MySQL
Android开发手册Chip监听及ChipGroup监听
2022/06/10 Java/Android