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 相关文章推荐
使用setup.py安装python包和卸载python包的方法
Nov 27 Python
wxPython定时器wx.Timer简单应用实例
Jun 03 Python
详解Django框架中用context来解析模板的方法
Jul 20 Python
Python实现爬取需要登录的网站完整示例
Aug 19 Python
python如何让类支持比较运算
Mar 20 Python
pandas.DataFrame删除/选取含有特定数值的行或列实例
Nov 07 Python
Python 实现还原已撤回的微信消息
Jun 18 Python
Pycharm 文件更改目录后,执行路径未更新的解决方法
Jul 19 Python
python列表每个元素同增同减和列表元素去空格的实例
Jul 20 Python
python 动态迁移solr数据过程解析
Sep 04 Python
Python 执行矩阵与线性代数运算
Aug 01 Python
Python类方法总结讲解
Jul 26 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调用Twitter的RSS的实现代码
2010/03/10 PHP
字母顺序颠倒而单词顺序不变的php代码
2010/08/08 PHP
PHP中删除变量时unset()和null的区别分析
2011/01/27 PHP
深入解析PHP中逗号与点号的区别
2013/08/05 PHP
php实现博客,论坛图片防盗链的方法
2016/10/15 PHP
PHP容器类的两种实现方式示例
2019/07/24 PHP
PHP手机号码及邮箱正则表达式实例解析
2020/07/11 PHP
JavaScript Event学习第四章 传统的事件注册模型
2010/02/07 Javascript
jQuery中$.fn的用法示例介绍
2013/11/05 Javascript
BootStrap中Datetimepicker和uploadify插件应用实例小结
2016/05/26 Javascript
浅谈javascript中的 “ && ” 和 “ || ”
2017/02/02 Javascript
jQuery插件HighCharts绘制简单2D折线图效果示例【附demo源码】
2017/03/21 jQuery
Bootstrap页面标题Page Header的实现方法
2017/03/22 Javascript
bootstrap table表格使用方法详解
2017/04/26 Javascript
AngularJS入门教程一:路由用法初探
2017/05/27 Javascript
QRCode.js二维码生成并能长按识别
2018/10/16 Javascript
浅谈让你的代码更简短,更整洁,更易读的ES6小技巧
2018/10/25 Javascript
iphone刘海屏页面适配方法
2019/05/07 Javascript
layer弹出层自定义提交取消按钮的例子
2019/09/10 Javascript
layer.open 获取不到表单信息的解决方法
2019/09/26 Javascript
高效jQuery选择器的5个技巧实例分析
2019/11/26 jQuery
js里面的变量范围分享
2020/07/18 Javascript
python开发中range()函数用法实例分析
2015/11/12 Python
浅谈Python peewee 使用经验
2017/10/20 Python
python如何提取英语pdf内容并翻译
2020/03/03 Python
基于CSS3制作立体效果导航菜单
2016/01/12 HTML / CSS
Ticketmaster德国票务网站:购买音乐会和体育等门票
2016/11/14 全球购物
初婚未育证明
2014/01/15 职场文书
践行三严三实心得体会
2014/10/13 职场文书
运动会搞笑广播稿
2014/10/14 职场文书
承诺书模板大全
2015/05/04 职场文书
师范生小学见习总结
2015/06/23 职场文书
高中班长竞选稿
2015/11/20 职场文书
pycharm代码删除恢复的方法
2021/06/26 Python
什么是动态刷新率DRR? Windows11动态刷新率功能介绍
2021/11/21 数码科技
Java服务调用RestTemplate与HttpClient的使用详解
2022/06/21 Java/Android