python中列表去重有哪几种方法,python中如何去重
抓取页面图片时,为了避免重复抓取,抓取的img结果(结果集为列表类型)通过集合进行去重。本文总结了网上搜集的几种方法。
一.方法1
代码如下所示
ids=[1,2,3,3,4,2,3,4,5,6,1]
news_ids=[]
对于ids中的id:
如果id不在news_ids中:
news_ids.append(id)
打印新闻_ ids
看起来清晰简单,可以保持之前的顺序。
二。方法2
用set方法处理。
代码如下所示
ids=[1,4,3,3,4,2,3,4,5,6,1]
ids=list(set(ids))
很容易处理,用set方法进行处理,但是结果不会保持之前的顺序。
三。方法3
使用lambda匿名函数和reduce函数进行处理
代码如下所示
ids=[1,4,3,3,4,2,3,4,5,6,1]
func=lambda x,y:x if y in x else x [y]
reduce(func,[[],]id)
四。方法4
使用itertools模块
代码如下所示
导入itertools
ids=[1,4,3,3,4,2,3,4,5,6,1]
ids.sort()
it=itertools.groupby(ids)
对于其中的k,g:
打印k
五、不能保持原有秩序
代码如下所示
liebiao=set(liebiao)
第六,遍历重复数据删除时
代码如下所示
def delRepeat(列标):
对于列标中的x:
而liebiao.count(x)1:
del liebiao[liebiao.index(x)]
返回列标
七。例子
程序很简单,直接去代码:
代码如下所示
#编码=utf-8
DEF _ TXT (): # Open TXT文本写入数组
尝试:
XXX=file(r c:\ Users \ Administrator \ Desktop \ user . txt , r )
对于xxx.readlines()中的xxx_line:
passlist.append(xxx_line)
xxx.close()
除了:
返回0
DEF _ TXT (): # Open TXT文本写入数组
尝试:
yyy=file(r c:\ Users \ Administrator \ Desktop \ list _ user . txt , w )
对于list_passwed中的I:
yyy.write(一)
yyy.close()
除了:
返回0
全局通行列表#声明全局变量
Passlist=[] # username:匿名密码为空。
Open_txt() #TXT导入数组
# passlist=list(set(passlist))# python列表重复数据删除
全局list_passwed #列表重复,不打乱原顺序。
list_passwed=[]
对于密码列表中的I:
如果我不在list_passwed中:
list_passwed.append(i)
write_txt()
side# set方法可以直接去重排序。如果需要排序,用set最快。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。