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 获取进程pid号的方法
Mar 10 Python
Python ORM框架SQLAlchemy学习笔记之映射类使用实例和Session会话介绍
Jun 10 Python
在Python中利用Into包整洁地进行数据迁移的教程
Mar 30 Python
Python捕捉和模拟鼠标事件的方法
Jun 03 Python
Anaconda入门使用总结
Apr 05 Python
python交互界面的退出方法
Feb 16 Python
浅谈Python基础—判断和循环
Mar 22 Python
Python requests模块基础使用方法实例及高级应用(自动登陆,抓取网页源码)实例详解
Feb 14 Python
python中安装django模块的方法
Mar 12 Python
python查看矩阵的行列号以及维数方式
May 22 Python
使用pytorch 筛选出一定范围的值
Jun 28 Python
python生成随机数、随机字符、随机字符串
Apr 06 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
phpMyAdmin2.11.6安装配置方法
2008/08/24 PHP
php实现将wav文件转换成图像文件并在页面中显示的方法
2015/04/21 PHP
php实现遍历文件夹的方法汇总
2017/03/02 PHP
PHP利用缓存处理用户注册时的邮箱验证,成功后用户数据存入数据库操作示例
2019/12/31 PHP
php设计模式之组合模式实例详解【星际争霸游戏案例】
2020/03/27 PHP
Draggable Elements 元素拖拽功能实现代码
2011/03/30 Javascript
让页面上两个div中的滚动条(滑块)同步运动示例
2013/08/07 Javascript
JS实现自动定时切换的简洁网页选项卡效果
2015/10/13 Javascript
整理Javascript基础语法学习笔记
2015/11/29 Javascript
用AngularJS的指令实现tabs切换效果
2016/08/31 Javascript
基于Vue如何封装分页组件
2016/12/16 Javascript
JavaScript之json_动力节点Java学院整理
2017/06/29 Javascript
详解从零搭建 vue2 vue-router2 webpack3 工程
2017/11/22 Javascript
浅谈webpack打包之后的文件过大的解决方法
2018/03/07 Javascript
vue打包使用Nginx代理解决跨域问题
2018/08/27 Javascript
vue element和nuxt的使用技巧分享
2021/01/14 Vue.js
[31:33]2014 DOTA2国际邀请赛中国区预选赛 TongFu VS DT 第一场
2014/05/23 DOTA
[14:56]教你分分钟做大人:巫医
2014/10/30 DOTA
[01:03:42]VP vs VGJ.S 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
使用Python神器对付12306变态验证码
2016/01/05 Python
从头学Python之编写可执行的.py文件
2017/11/28 Python
使用celery执行Django串行异步任务的方法步骤
2019/06/06 Python
Python通过4种方式实现进程数据通信
2020/03/12 Python
python交互模式基础知识点学习
2020/06/18 Python
Python手动或自动协程操作方法解析
2020/06/22 Python
Python scrapy爬取小说代码案例详解
2020/07/09 Python
python PIL模块的基本使用
2020/09/29 Python
美国棒球装备和用品商店:Baseball Savings
2018/06/09 全球购物
英国复古皮包品牌:Beara Beara
2018/07/18 全球购物
认购协议书范本
2014/04/22 职场文书
关于读书的演讲稿1000字
2014/08/27 职场文书
七一慰问简报
2015/07/20 职场文书
python中的被动信息搜集
2021/04/29 Python
Vue和Flask通信的实现
2021/05/19 Vue.js
Sleuth+logback 设置traceid 及自定义信息方式
2021/07/26 Java/Android
python库sklearn常用操作
2021/08/23 Python