python去除列表中重复元素的方法
列表中元素位置的索引用的是L.index
本文实例讲述了Python去除列表中重复元素的方法。分享给大家供大家参考。具体如下:
比较容易记忆的是用内置的set
1
2
3
|
l1 = [ 'b' , 'c' , 'd' , 'b' , 'c' , 'a' , 'a' ] l2 = list ( set (l1)) print l2 |
还有一种据说速度更快的,没测试过两者的速度差别
1
2
3
|
l1 = [ 'b' , 'c' , 'd' , 'b' , 'c' , 'a' , 'a' ] l2 = {}.fromkeys(l1).keys() print l2 |
这两种都有个缺点,祛除重复元素后排序变了:
1
|
[ 'a' , 'c' , 'b' , 'd' ] |
如果想要保持他们原来的排序:
用list类的sort方法
1
2
3
4
|
l1 = [ 'b' , 'c' , 'd' , 'b' , 'c' , 'a' , 'a' ] l2 = list ( set (l1)) l2.sort(key = l1.index) print l2 |
也可以这样写
1
2
3
|
l1 = [ 'b' , 'c' , 'd' , 'b' , 'c' , 'a' , 'a' ] l2 = sorted ( set (l1),key = l1.index) print l2 |
也可以用遍历
1
2
3
4
5
6
|
l1 = [ 'b' , 'c' , 'd' , 'b' , 'c' , 'a' , 'a' ] l2 = [] for i in l1: if not i in l2: l2.append(i) print l2 |
上面的代码也可以这样写
1
2
3
4
|
l1 = [ 'b' , 'c' , 'd' , 'b' , 'c' , 'a' , 'a' ] l2 = [] [l2.append(i) for i in l1 if not i in l2] print l2 |
这样就可以保证排序不变了
def dedupe(items):
seen = set()
for item in items:
if item not in seen:
yield item
seen.add(item)
不可变类型可哈希,可变类型不可哈希,对于不可哈希的数据
上述代码改成:
def dedupe(items, key=None):
seen = set()
for item in items:
val = item if key is None else key(item)
if val not in seen:
yield item
seen.add(val)
python去除列表中重复元素的方法的更多相关文章
- Python 去除列表中重复的元素
Python 去除列表中重复的元素 来自比较容易记忆的是用内置的set l1 = ['b','c','d','b','c','a','a'] l2 = list(set(l1)) print l2 还 ...
- 【381】python 获取列表中重复元素的索引值
参考:获取python的list中含有重复值的index方法_python_脚本之家 核心思想:建立字典,遍历列表,把列表中每个元素和其索引添加到字典里面 cc = [1, 2, 3, 2, 4] f ...
- Python 去除列表中重复的元素(转载http://blog.csdn.net/zhengnz/article/details/6265282)
比较容易记忆的是用内置的set l1 = ['b','c','d','b','c','a','a']l2 = list(set(l1))print l2 还有一种据说速度更快的,没测试过两者的速度 ...
- pyhon 去除列表中重复元素
Python set() 函数 描述 set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集.差集.并集等. 语法 set 语法: class set([iterabl ...
- Python 统计列表中重复元素的个数并返回其索引值
需求:统计列表list1中元素3的个数,并返回每个元素的索引 list1 = [3, 3, 8, 9, 2, 10, 6, 2, 8, 3, 4, 5, 5, 4, 1, 5, 9, 7, 10, 2 ...
- python中如何去除列表中重复元素?
方法一: 用内置函数set: list1 = [1, 2, 3, 3, 4, 4, 5, 6, 6, 6, 7, 8, 9] list2 = list(set(list1)) print(list2) ...
- Python-删除列表中重复元素的方法
1.set()方法 x = [1,2,3,4,5,1] y = list(set(x)) print(y) ``` [1, 2, 3, 4, 5] ``` 2. x = ['b','c','d','b ...
- 删除列表中重复元素以及求list中元素个数
Python 去除列表中重复的元素 来自比较容易记忆的是用内置的set l1 = ['b','c','d','b','c','a','a'] l2 = list(set(l1)) print l2 还 ...
- 集合求交集 & 去除列表中重复的元素
集合求交集: set1 = {1,2,3,4,5} set2 = {4,5,6,7,8} 交集:set3 = set1 & set2 print(ste3) #结果为{4,5} 或者ste1. ...
随机推荐
- Try setting a different JdbcType for this parameter or a different configuration property. Cause: org.postgresql.util.PSQLException: 栏位索引超过许可范围:2,栏位数:1
执行mybaits sql <delete id="delete4BatchesByLineCi" parameterType="java.util.List&qu ...
- Java 面向对象的帮助文档制作(6)
set classPath=c:\myclass; 设置path路径
- php速成_day4
一.微信公众平台概述 1.微信发展史 1)2011年1月21日,腾讯推出微信应用程序.(张小龙) 2)2012年8月20日,腾讯推出微信公众平台功能,同年11月开放第三方接口 3)2013年11月注册 ...
- rpc框架解释
远程过程调用协议RPC(Remote Procedure Call Protocol) RPC是指远程过程调用,也就是说两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方 ...
- 17.3.10--C语言运行的步骤
编译-->生成-->调试-->链接-->运行 编译就是:将你编写的C语言程序翻译成机器能识别运行的指令集 生成就是:根据编译完成的指令集制造出机器可以具体执行的指令序列 调试就 ...
- 用Python3生成30万条excel数据(xlsx格式)
在B/S架构的系统测试中,有时需要通过导入excel文件来生成一些数据记录,当数据量小的时候,一般不会出现什么问题,而当导入的数据量巨大时,对系统的性能就是一个考验了.为了验证系统的性能,有时需要导入 ...
- 寒假day07
今天没写毕设,看了一些公司招聘的信息,刷了一点相关面试题 1.在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这 ...
- 试验指标|试验单位|均方|随机模型|固定模型|字母标记法|LSR|q检验|LSD|重复值|弥补缺失数据|可加性|平方根转换|对数转换|反正弦转化
第五章 方差分析 试验指标是什么? 就是统计的测量值,eg:身高体重 试验单位( experimental unit )是什么? 实验载体,比如一只小白鼠 均方是什么? 就是方差 随机模型的τ有何特点 ...
- 关于Linux下Oracle安装后启动的问题
1.首先,切换成oracle用户,启动监听服务.(中间的横杠必须加上,不然会出现command not found 的错误) 命令1:su - oralce 命令2:lsnrctl start 参 ...
- typescript--介绍ts
TypeScript 介绍 TypeScript 是什么 TypeScript 是 JavaScript 的强类型版本.然后在编译期去掉类型和特有语法,生成纯粹的 JavaScript 代码.由于最终 ...