python列表如何去除重复_python列表如何去除重复元素(转自先锋教程网)
python列表如何去除重复元素?
例子,python列表去重复。
复制代码代码示例:
#第一种def delRepeat(liebiao): for x in liebiao: while liebiao.count(x)>1: del liebiao[liebiao.index(x)] return liebiao
#第二种 无法保持原有顺序liebiao=set(liebiao)
python去除列表中的重复元素比较容易记忆的是用内置的set
l1 = ['b','c','d','b','c','a','a']
l2 = list(set(l1))
print l2
还有一种据说速度更快的,没测试过两者的速度差别
l1 = ['b','c','d','b','c','a','a']
l2 = {}.fromkeys(l1).keys()
print l2
这两种都有个缺点,祛除重复元素后排序变了:
['a', 'c', 'b', 'd']
如果想要保持原来的排序:
用list类的sort方法
l1 = ['b','c','d','b','c','a','a']
l2 = list(set(l1))
l2.sort(key=l1.index)
print l2
也可以这样写
l1 = ['b','c','d','b','c','a','a']
l2 = sorted(set(l1),key=l1.index)
print l2
也可以用遍历
l1 = ['b','c','d','b','c','a','a']
l2 = []
for i in l1:
if not i in l2:
l2.append(i)
print l2
上面的代码也可以这样写
l1 = ['b','c','d','b','c','a','a']
l2 = []
[l2.append(i) for i in l1 if not i in l2]
print l2
这样就可以保证排序不变了:
['b', 'c', 'd', 'a']
python列表list去除重复元素的方法python list去重的方法,需要用到 itertools.groupby 函数。
问题就是对一个list中的新闻id进行去重,去重之后要保证顺序不变。
1,直观方法,也是最简单的方法
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
这样也可行,但是看起来不够爽。
2,用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)
3,使用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
python列表如何去除重复_python列表如何去除重复元素(转自先锋教程网)相关推荐
- python中的列表分片详解_python列表与元组详解实例
在这章中引入了数据结构的概念.数据结构是通过某种方式组织在一起的数据元素的集合.在python中,最基本的数据结构就是序列.序列中的每个元素被分配一个序号,即元素的位置,也被称为索引.注意:第一个索引 ...
- python列表有哪些操作_python列表的基本操作有哪些
python列表的基本操作有:1.创建列表,只要把逗号分隔的不同的数据项使用方括号括起来:2.添加新的元素:3.遍历列表:4.访问列表中的值:5.从list删除元素. 相关免费学习推荐:python教 ...
- python列表字典元祖_python列表,字典,元组常用方法和集合
python 一.列表 列表格式 变量=[元素1,元素2,元素3......] 1.添加 列表取数(按照下标取,下标从0开始) 获取长度 append添加(直接添加) extend添加(分别添加) i ...
- python中append的用法_Python 列表 append() 使用方法及示例
Python 列表 append() 使用方法及示例 append()方法将一个项目添加到列表的末尾. append()方法将单个项目添加到列表的末尾. append()方法的语法为:list.app ...
- python列表的实现原理_Python列表对象实现原理
Python 列表对象实现原理 Python 中的列表基于 PyListObject 实现,列表支持元 素的插入.删除.更新操作,因此 PyListObject 是一个变长 对象(列表的长度随着元素的 ...
- python列表操作函数大全_Python列表操作函数
列表可以进行多个数据的存储,同时python中的列表设计非常到位,它可以实现内容动态扩充,可以进行后期数据的删除,这些就需要通过Python提供的列表操作函数来实现了. 对于Python语言而言,开发 ...
- python列表解析式如何使用_python列表推导式操作解析
python列表推导式操作解析 这篇文章主要介绍了python列表推导式操作解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 基本格式 [表达式 ...
- python列表的实现原理_python列表推导式原理和使用方法
偶尔会在python中看见这样一行代码: data = [x**2 for x in range(0, 5)] # 此时data = [0, 1, 4, 9, 16] 如果不知道背后的语法规则,那么很 ...
- python列表解析式如何使用_python列表解析式,生成器,及部分内建函数使用方法...
标准库datetime 需要导入datetime模块: import datetime datetime模块: 对日期,时间,时间戳的处理 datetime的类方法 today () now(tz= ...
最新文章
- matlab程序和程序文件
- BOI 2003 Problem. Spaceship
- [Java基础]Lambda表达式的格式与使用前提
- 23装饰模式(Decorator Pattern)
- 智慧交通day02-车流量检测实现06:目标估计模型-卡尔曼滤波(汇总)
- JetBrains IDE 调试快捷键(debug、全)
- jQuery实现的向下推送图文信息滚动效果
- c++primer 第2章 练习题答案 (尚未完善 陆续补充中 基本上已经完成)
- 想买楼下邻居的那套房,彼此熟悉,这种情况还用找中介付中介费吗?
- 家里的活一般是都帮不上忙
- 第一章 计算机网络参考模型
- [转帖]到底什么是时间复杂度
- 继承接口Java多线程(二)、启动一个线程的3种方式
- x64驱动遍历 DPC 定时器
- 第一次:《三国志2017》游戏纯玩体验及总结
- 计算机图形图像项目教程素材,计算机图形图像应用教程
- 计算机组成与原理第二章,计算机组成原理《第二章》
- 企业大数据价值你只发掘了1%!
- 繁簡替互換(SQL)
- MATLAB|创建指定行列大小行向量/零矩阵/单位阵含测试用例
热门文章
- nginx配置与应用
- python下划线_python 五种下划线含义
- 凤凰系统 android 分辨率,凤凰os支持的分辨率 | 手游网游页游攻略大全
- python时间索引_python+dataframe + 时间索引
- 【转】Word样式库模板管理(从样式库中永久删除样式)
- 检查python版本命令是_检查Python版本
- 什么是Flex弹性布局
- 使用最新PyPy代替CPython,加速Python执行
- Linux系统时间 time.h 之 函数gmtime使用
- gis插入的文本怎么搞成两行_word中关于文本框的使用方法大全