欢迎光临
我们一直在努力

python列表怎样去重,python如何对列表元素去重

在抓取页面图片时,为避免重复抓取,将抓取的img结果(结果集是list类型的)通过集合去重。这里总结了下网上搜集到的几种方法。

一、方法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方法进行处理

代码如下

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, [[], ] + ids)

四、方法4

使用itertools模块

代码如下

import itertools

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

五、无法保便宜香港vps持原有顺序

代码如下

liebiao=set(liebiao)

六、while遍历去重

代码如下

def delRepeat(liebiao):

for x in liebiao:

while liebiao.count(x)>1:

del liebiao[liebiao.index(x)]

return liebiao

七、例子

程序很简单,直接上代码吧:

代码如下

#coding=utf-8

def open_txt():? #打开TXT文本写入数组

try:

xxx = file(r’C:\Users\Administrator\Desktop\user.txt’, ‘r’)

for xxx_line in xxx.readlines():

passlist.append(xxx_line)

xxx.close()

except:

return 0

def write_txt():? #打开TXT文本写入数组

try:

yyy = file(r’C:\Users\Administrator\Desktop\list_user.txt’, ‘w’)

for i in list_passwed:

yyy.write(i)

yyy.close()

except:

return 0

global? passlist? #声明全局变量

passlist = []??? #用户名:anonymous 密码为空

open_txt()?? #TXT导入数组

#passlist = list(set(passlist))?? #python 列表去重

global? list_passwed? #列表去重,不打乱原来的顺序

list_passwed=[]

for i in passlist:

if i not in list_passwed:

list_passwed.append(i)

write_txt()

aside# set方法可以直接去重而且还会排序,如果需要排序的话用set是最快的

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。