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 相关文章推荐
使用pdb模块调试Python程序实例
Jun 02 Python
python+matplotlib实现礼盒柱状图实例代码
Jan 16 Python
Python实现在tkinter中使用matplotlib绘制图形的方法示例
Jan 18 Python
利用TensorFlow训练简单的二分类神经网络模型的方法
Mar 05 Python
Django中STATIC_ROOT和STATIC_URL及STATICFILES_DIRS浅析
May 08 Python
python实现嵌套列表平铺的两种方法
Nov 08 Python
对python中list的拷贝与numpy的array的拷贝详解
Jan 29 Python
网易有道2017内推编程题 洗牌(python)
Jun 19 Python
python FTP批量下载/删除/上传实例
Dec 22 Python
如何在Python对Excel进行读取
Jun 04 Python
UI自动化定位常用实现方法代码示例
Oct 27 Python
Python基础数据类型tuple元组的概念与用法
Aug 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
Smarty+QUICKFORM小小演示
2007/02/25 PHP
php变量与字符串的增删改查操作示例
2020/05/07 PHP
ASP小贴士/ASP Tips javascript tips可以当桌面
2009/12/10 Javascript
用AJAX返回HTML片段中的JavaScript脚本
2010/01/04 Javascript
JS 文件大小判断的实现代码
2010/04/07 Javascript
在javascript中实现函数数组的方法
2013/12/25 Javascript
页面加载完毕后滚动条自动滚动一定位置
2014/02/20 Javascript
JavaScript事件委托的技术原理探讨示例
2014/04/17 Javascript
JavaScript简单验证表单空值及邮箱格式的方法
2017/01/20 Javascript
ReactJs设置css样式的方法
2017/06/08 Javascript
Parcel.js + Vue 2.x 极速零配置打包体验教程
2017/12/24 Javascript
简单谈谈CommonsChunkPlugin抽取公共模块
2017/12/31 Javascript
详解Angular5 服务端渲染实战
2018/01/04 Javascript
实例讲解v-if和v-show的区别
2019/01/31 Javascript
JS+php后台实现文件上传功能详解
2019/03/02 Javascript
webpack4 SplitChunks实现代码分隔详解
2019/05/23 Javascript
JS检索下拉列表框中被选项目的索引号(selectedIndex)
2019/12/17 Javascript
JavaScript语法约定和程序调试原理解析
2020/11/03 Javascript
python 写的一个爬虫程序源码
2016/02/28 Python
Python切片索引用法示例
2018/05/15 Python
python实现的自动发送消息功能详解
2019/08/15 Python
python中的subprocess.Popen()使用详解
2019/12/25 Python
pytorch中的weight-initilzation用法
2020/06/24 Python
Python如何爬取b站热门视频并导入Excel
2020/08/10 Python
利用CSS3的checked伪类实现OL的隐藏显示的方法
2010/12/18 HTML / CSS
美国滑雪板和装备购物网站:Skis.com
2018/12/20 全球购物
奥地利体育网上商店:Gigasport
2019/10/09 全球购物
VC++笔试题
2014/10/13 面试题
怎么可以提高数据库查询数据的速度
2014/06/28 面试题
自我介绍演讲稿
2014/01/15 职场文书
小区消防演习方案
2014/02/21 职场文书
就业导师推荐信范文
2015/03/27 职场文书
小学运动会加油词
2015/07/18 职场文书
如何使JavaScript休眠或等待
2021/04/27 Javascript
Java org.w3c.dom.Document 类方法引用报错
2021/08/07 Java/Android
python库sklearn常用操作
2021/08/23 Python