python中列表实现去重使用_Python对list列表结构中的值进行去重的方法总结
今天遇到一个问题,在同事随意的提示下,用了 itertools.groupby 这个函数。不过这个东西最终还是没用上。
问题就是对一个list中的新闻id进行去重,去重之后要保证顺序不变。
直观方法最简单的思路就是:
ids = [1,2,3,3,4,2,3,4,5,6,1]news_ids = []for id in ids:
if id not in news_ids:
news_ids.append(id)
print news_ids
这样也可行,但是看起来不够爽。
用set另外一个解决方案就是用set:
ids = [1,4,3,3,4,2,3,4,5,6,1]ids = list(set(ids))
这样的结果是没有保持原来的顺序。
按照索引再次排序
最后通过这种方式解决:
ids = [1,4,3,3,4,2,3,4,5,6,1]news_ids = list(set(ids))
news_ids.sort(ids.index)
使用itertools.grouby文章一开始就提到itertools.grouby, 如果不考虑列表顺序的话可用这个:
ids = [1,4,3,3,4,2,3,4,5,6,1]ids.sort()
it = itertools.groupby(ids)
for k, g in it:
print k
关于itertools.groupby的原理可以看这里:http://docs.python.org/2/library/itertools.html#itertools.groupby
用reduce网友reatlk留言给了另外的解决方案。我补充并解释到这里:
In [5]: ids = [1,4,3,3,4,2,3,4,5,6,1]
In [6]: func = lambda x,y:x if y in x else x + [y]
In [7]: reduce(func, [[], ] + ids)
Out[7]: [1, 4, 3, 2, 5, 6]
上面是我在ipython中运行的代码,其中的 lambda x,y:x if y in x else x + [y] 等价于 lambda x,y: y in x and x or x+[y] 。
思路其实就是先把ids变为[[], 1,4,3,……] ,然后在利用reduce的特性。reduce解释参看这里:http://docs.python.org/2/library/functions.html#reduce
您可能感兴趣的文章:Python3删除排序数组中重复项的方法分析Python实现删除排序数组中重复项的两种方法示例python中对list去重的多种方法python列表去重的二种方法Python对列表去重的多种方法(四种方法)Python对字符串实现去重操作的方法示例Python对多属性的重复数据去重实例Python numpy 点数组去重的实例Python 利用内置set函数对字符串和列表进行去重的方法Python3实现从排序数组中删除重复项算法分析
python中列表实现去重使用_Python对list列表结构中的值进行去重的方法总结相关推荐
- python中大于0怎么表示_python怎么筛选列表中大于0的数据?
k17少儿编程网-Scratch_Python_教程_免费儿童编程学习平台 python筛选列表中大于0的数据的方法:k17少儿编程网-Scratch_Python_教程_免费儿童编程学习平台 1.使 ...
- python中排序英文单词怎么写_Python实现对文件进行单词划分并去重排序操作示例...
本文实例讲述了Python实现对文件进行单词划分并去重排序操作.,具体如下: 文件名:test1.txt 文件内容: But soft what light through yonder window ...
- [转载] python中for语句用法_详解Python中for循环的使用_python
参考链接: 在Python中将else条件语句与for循环一起使用 这篇文章主要介绍了Python中for循环的使用,来自于IBM官方网站技术文档,需要的朋友可以参考下 for 循环 本系列前面 &q ...
- python中for语句用法_详解Python中for循环的使用_python
这篇文章主要介绍了Python中for循环的使用,来自于IBM官方网站技术文档,需要的朋友可以参考下 for 循环 本系列前面 "探索 Python,第 5 部分:用 Python 编程&q ...
- python中的array函数作用_Python中的Array | 数组2(简介和功能)
相关文章:Python中的数组Array | 1(简介和功能) 以下是更多函数. 1. typecode:此函数返回初始化数组所用的数据类型. 2. itemsize:此函数返回单个数组元素的大小(以 ...
- python中数据类型不同运算不同_Python的基本数据类型与运算
Python的基本数据类型: 1.number数字 整型(整数):python可以处理任意大小的整数包括正整数与负整数 浮点型(小数):在Python中表示浮点数的时候回存在一些误差 复数:a+bj ...
- 在python中创建一个具有特定大小的空列表
本文翻译自:Create an empty list in python with certain size I want to create an empty list (or whatever i ...
- python中如何进行数据类型转换_python数据类型的强制转换
首页 专栏 python 文章详情 0 python数据类型的强制转换 小小垂髫 发布于 1 月 21 日 数据类型的强制转换 如果要将一个数据转换成另一个数据类型,只需要将其放入相应类型的函数中去. ...
- python中turtle要安装吗_Python中下划线的5种含义你都知道吗?
黑客技术 点击右侧关注,了解黑客的世界! Linux编程 点击右侧关注,免费入门到精通! 程序员严选 甄选正品好物,程序员生活指南! 本文介绍了Python中单下划线和双下划线("dunde ...
- python中choice()函数的参数_Python中choice函数如何实现?
熟悉Python的小伙伴是知道Python是可以生成随机项的,python中choice函数是random模块的随即取样函数,它可以通过导入 random 模块,调用 random 静态对象生成Pyt ...
最新文章
- HTMD | 从PDB文件获取3D特征描述符
- Phpcms V9当前栏目及所有二级栏目下内容调用标签
- oracle 快照用途,Oracle快照原理及实现总结
- 快学好这个去给学妹修热水器
- 开环控制的两轮差速驱动小车_汽车的差速器、差速锁有什么不同?很多车主容易把它俩搞混...
- 计算机专业有没有3D打印,3D打印技术属于哪个专业_招生问答
- Android键盘删除键问题
- Steve Yegge:Google面试秘籍
- 【C++】输出公元1900-2100年之间所有闰年的年号,每5个一行
- 用Sniffer和ARP分析网络问题
- 2021互联网大厂端午礼盒大盘点~
- 小孔成像总结_初中物理150条知识点总结,非常珍贵!
- 西门子1200PLC的MODBUS_RTU轮询程序
- 【台大郭彦甫】Matlab入门教程超详细学习笔记二:基本操作与矩阵运算(附PPT链接)
- ffmpeg php 水平翻转,FFmpeg 视频画面旋转的命令详解及旋转失败的解决方法
- ajax的leiku,AJAX实现汉字和拼音搜索自动提示的效果(asp.net)
- 安卓USB绑定RNDIS驱动的详细安装教程
- Web服务(07)——LNMP一键部署
- 计算机科学编辑终审退稿,三审退稿信范文三审三校.doc
- 学习linux的好助手-linux命令解释工具
热门文章
- hdu Hike on a Graph
- jQuery源码分析系列(35) : Ajax - jsonp的实现与原理
- 域还原的三种模式,以及应用场景
- Citrix入门教程,之windows server2008 r2安装
- exawear能运行java_VirSCAN.org-多引擎在线病毒扫描网 v1.02,当前支持 47 款杀毒引擎...
- mapper的更多细节,日志配置、核心文件的配置等
- BIO、NIO、AIO的简单个人理解,同步异步和阻塞非阻塞的简单理解
- python实现逻辑回归牛顿法求参数_教程 | 如何通过牛顿法解决Logistic回归问题
- 小程序 params_08. 小程序项目实战:设置首页轮播图(3)
- java编程创建警告_java – 无法阻止ant生成编译器Sun专有API警告