python中列表去重有哪几种方法,python中如何去重

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: