美文网首页
我是如何跨专业零基础学习Python爬虫的(3 使用set对li

我是如何跨专业零基础学习Python爬虫的(3 使用set对li

作者: A_Captain_Jack | 来源:发表于2017-12-19 15:12 被阅读0次

    在上一篇文章中我们看到了Python对于清单(list)的处理方法,而在实际的爬虫过程中,当我们将上万条数据存储并提取list之后,常遇到的一个问题是怎么去掉list中重复的元素而只保留不重复的元素,这个时候我们就要用到今天展示的set方法。

    比如列表a = [5, 2, 5, 1, 4, 3, 4],可以用如下方式实现

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

    print list(set(a))

    如果想要保持他们原来的排序:

    用list类的sort方法

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

    l2 =list(set(l1))

    l2.sort(key=l1.index)

    printl2

    也可以这样写

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

    l2 =sorted(set(l1),key=l1.index)

    printl2

    也可以用遍历

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

    l2 =[]

    fori inl1:

    ifnoti inl2:

    l2.append(i)

    printl2

    上面的代码也可以这样写

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

    l2 =[]

    [l2.append(i) fori inl1 ifnoti inl2]

    printl2

    这样就可以保证排序不变了:

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

    Python中set集合对象还支持union(联合[|])、intersection(交[&])、difference(差[-])和sysmmetric

    difference(对称差集^)等数学运算。如下:

    a = set('abracadabra')

    b = set('alacazam')

    # a包含且b包含的字符

    print a & b

    print a.intersection(b)

    # a包含或b包含的字符

    print a | b

    print a.union(b)

    # a包含且b不包含的字符

    print a - b

    print a.difference(b)

    # a包含且b不包含的字符和b包含且a不包含的字符

    print a ^ b

    相关文章

      网友评论

          本文标题:我是如何跨专业零基础学习Python爬虫的(3 使用set对li

          本文链接:https://www.haomeiwen.com/subject/vgabwxtx.html