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使用socket向客户端发送数据的方法
Apr 29 Python
Django自定义插件实现网站登录验证码功能
Apr 19 Python
python3+PyQt5重新实现自定义数据拖放处理
Apr 19 Python
python中pika模块问题的深入探究
Oct 13 Python
Python 将Matrix、Dict保存到文件的方法
Oct 30 Python
基于python全局设置id 自动化测试元素定位过程解析
Sep 04 Python
python numpy之np.random的随机数函数使用介绍
Oct 06 Python
python如何实现复制目录到指定目录
Feb 13 Python
python GUI库图形界面开发之PyQt5日期时间控件QDateTimeEdit详细使用方法与实例
Feb 27 Python
Python PyQt5运行程序把输出信息展示到GUI图形界面上
Apr 27 Python
django 数据库返回queryset实现封装为字典
May 19 Python
解决python中import文件夹下面py文件报错问题
Jun 01 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操作JSON格式数据的实现代码
2011/12/24 PHP
解析PHP中ob_start()函数的用法
2013/06/24 PHP
PHP生成sitemap.xml地图函数
2013/11/13 PHP
PHP中数组的分组排序实例
2014/06/01 PHP
PHP全局变量与超级全局变量区别分析
2016/04/01 PHP
PHP精确计算功能示例
2016/11/29 PHP
PHP+Ajax无刷新带进度条图片上传示例
2017/02/08 PHP
HTML IMG标签 onload 内存溢出导致浏览器CPU占用过高
2021/03/09 Javascript
jquery 输入框数字限制插件
2009/11/10 Javascript
获取内联和链接中的样式(js代码)
2013/04/11 Javascript
基于javascript实现全国省市二级联动下拉选择菜单
2016/01/28 Javascript
浅析jQuery Ajax请求参数和返回数据的处理
2016/02/24 Javascript
每日十条JavaScript经验技巧(二)
2016/06/23 Javascript
jquery之别踩白块游戏的简单实现
2016/07/25 Javascript
js获取指定字符前/后的字符串简单实例
2016/10/27 Javascript
AngularJS表格样式简单设置方法示例
2017/03/03 Javascript
jQuery实现拖动效果的实例代码
2017/06/25 jQuery
vue引用js文件的多种方式(推荐)
2018/05/17 Javascript
微信小程序常用简易小函数总结
2019/02/01 Javascript
js实现简单点赞操作
2020/03/17 Javascript
Vue2.0 ES6语法降级ES5的操作
2020/10/30 Javascript
[42:52]Optic vs Serenity 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
python使用多线程编写tcp客户端程序
2019/09/02 Python
python GUI库图形界面开发之PyQt5计数器控件QSpinBox详细使用方法与实例
2020/02/28 Python
基于Python制作一副扑克牌过程详解
2020/10/19 Python
对pytorch中x = x.view(x.size(0), -1) 的理解说明
2021/03/03 Python
印度尼西亚电子产品购物网站:Kliknklik
2018/06/05 全球购物
学校食堂采购员岗位职责
2013/12/05 职场文书
助人为乐模范事迹材料
2014/06/02 职场文书
英文感谢信格式
2015/01/21 职场文书
2015年党风廉政建设工作总结
2015/04/09 职场文书
2015年度内部审计工作总结
2015/05/20 职场文书
刑事辩护词范文
2015/05/21 职场文书
初中班级口号霸气押韵
2015/12/24 职场文书
SpringBoot生成License的实现示例
2021/06/16 Java/Android
nginx请求限制配置方法
2021/07/09 Servers