python list每个重复元素保留一次,python 列表(list)去除重复的元素总结

方法一:

将list作为set的构造函数构造一个set,然后再将set转换会list就可以

>>> myList = [1, 2, 3, 3, 2, 2, 4, 5, 5]

>>> myList

[1, 2, 3, 3, 2, 2, 4, 5, 5]

>>> myList = list(set(myList))

>>> myList

[1, 2, 3, 4, 5]

方法二:使用列表推导,只保留元素个数等于1

例如:

a = ['a', 'b', 'c', 'd', 'a', 'a']

b = [x for x in a if a.count(x) == 1]

print b

不过还可以使用下面的方法,只是上面的方法更简单

b = []

for x in a:

if a.count(x) == 1:

b.append(x)

print b

方法三:使用字典中的fromkeys方法

a = ['b','c','d','b','c','a','a']

b = {}.fromkeys(a).keys()

print b

方法四:用list类的sort方法

a = ['b','c','d','b','c','a','a']

b = list(set(a))

b.sort(key=a.index)

print b

不过,也可以这样写

a = ['b','c','d','b','c','a','a']

b = sorted(set(a),key=a.index)

print b

方法五:使用用遍历

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']

方法六:使用lambda方法

>>> lst = [1, 2, 4, 5, 5, 5, 4, 7]

>>> print filter(lambda x: lst.count(x)<2, lst)

[1, 2, 7]

Python 列表如何获得一个指定元素所在的下标

在使用Python3.4读取txt数据到列表,由于编码问题,读取到的数据通常会出现'\ufeffX'(x为你想要的数据).这时候如果需要把列表中的数据由字符串转换到数值型的数据的进行数据分析的话就会出 ...

Java ArrayList使用技巧 - 两个ArrayList去除重复的元素

方法一.ArrayList中提供的removeAll方法(效率最低) List1.removeAll(mSubList); 方法二.双重循环(比方法一效率高) 双重循环分为内外两层循环,经过测试,将元 ...

在python列表中删除所有空元素

今天在测试数据的时候偶然发现一个问题,如下: test = ['a','','b','','c','',''] for i in test: if i == '': test.remove(i) pr ...

python 找出数组重复的元素

""" 从头扫到尾,只要当前元素值与下标不同,就做一次判断,numbers[i]与numbers[numbers[i]], 相等就认为找到了重复元素,返回true,否则就 ...

&lbrack;Python&rsqb;python对csv去除重复行 python 2020&period;2&period;11

用pandas库的.drop_duplicates函数 代码如下: import shutil import pandas as pd frame=pd.read_csv('E:/bdbk.csv', ...

List去除重复的元素

有两种方法,一种是去重不带顺序的,一种是去重带顺序的. /* * 方法1: 无顺序 * Hastset根据hashcode判断是否重复,数据不会重复 */ public static Lis ...

python分割数组里面重复的元素

c=[1,1,1,1,2,2,2,3,3,4,4,4,4,4,5,5,5,] a = [] x = [] for i in range(0,len(c)): if i + 1 < len(c): ...

vector去除重复的元素

vector v; sort(v.begin(),v.end()); v.erase(unique(v.begin(), v.end()), v.end());

兰亭集势笔试题:用最优方法从LinkedList列表中删除重复元素

用运行速度最优的方法从LinkedList列表里删除重复的元素,例如A->B->BB->B->C,返回A->B->BB->C. 考试的时候没完全想明白,考完又 ...

随机推荐

TCP的粘包现象

看面经时,看到有面试官问TCP的粘包问题.想起来研一做购物车处理数据更新时遇到粘包问题,就总结一下吧. 1 什么是粘包现象 TCP粘包是指发送方发送的若干包数据到接收方接收时粘成一包,从接收缓冲区看, ...

004&period;UDP--拼接UDP数据包&comma;构造ip头和udp头通信&lpar;使用原始套接字&rpar;

一.大致流程: 建立一个client端,一个server端,自己构建IP头和UDP头,写入数据(hello,world!)后通过原始套接字(SOCK_RAW)将包发出去. server端收到数据后,打 ...

百度API使用--javascript api进行多点定位

使用百度地图提供的javascript api,给定多点的经纬度坐标,在百度地图上 显示这些坐标点. 其中包括各个点自适应地图显示,自定义坐标点的图标,以及各个点之间添加折线. 实现的效果如下图: 具 ...

修改ulimit

ulimit 用于限制 shell 启动进程所占用的资源,支持以下各种类型的限制:所创建的内核文件的大小.进程数据块的大小.Shell 进程创建文件的大小.内存锁住的大小.常驻内存集的大小.打开文件描 ...

【Linux&sol;Ubuntu学习 13】ubuntu上好用的pdf软件okular

step 1: 安装 sudo apt-get install okular step 2: 注释 按 F6 快捷方式打开注释功能,你会发现太神奇了. step 3: 中文配置 如果安装完成后中文显示 ...

Loading Data into HDFS

How to use a PDI job to move a file into HDFS. Prerequisites In order to follow along with this how- ...

asp&period;net手动填充TreeView生成树

最近在做项目发现需要用到树的地方,页面的前台任然是使用一个asp.net的控件TreeView来显示树的结构,当然也可以自己在前台写一个树来展示,这在后期跟局功能的不同很大可能会要用到异步的知识,废话 ...

2014年度辛星解读css第四节

接下来的这一节我计划解说的是超链接和列表的样式,然后我们做出一个导航栏出来,事实上导航栏是很常见的,可是我们这里做得这个有点并不那么完好,等我们学完了css之后再完好它. ************** ...

ffmpeg ffplay ffprobe资料整理

1. 官网地址:https://ffmpeg.org/ 官网文档地址:https://ffmpeg.org/documentation.html 官网下载地址:https://ffmpeg.org/d ...

JavaWeb在线电子相册springmvc

(一) 这学期上了一们叫做J2EE的选修课,本以为很水,没想到这个课这么烦气,最后大实验是一个springmvc的电子相册,做了两个周,终于完事了,姑且把这一篇叫做(一)吧 粗略看了一下啊,两个人的实 ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值