python 列表去重

2014年11月27日 发表评论 阅读评论

在抓取页面图片时,为避免重复抓取,将抓取的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




本站的发展离不开您的资助,金额随意,欢迎来赏!

You can donate through PayPal.
My paypal id: itybku@139.com
Paypal page: https://www.paypal.me/361way

  1. win2lin
    2014年12月8日10:39 | #1

    可否写写网抓一类的文章,主要集中在程序的书写方面。

  1. 本文目前尚无任何 trackbacks 和 pingbacks.