python爬虫(三)--Python的set()
来源:互联网 发布:2015年各省地税数据 编辑:程序博客网 时间:2024/05/23 15:06
如果你已经掌握了爬虫基础,看了我前面三个基础再来继续看这一篇文章。
这篇文章主要讲解爬虫程序中必须要用到的python集合,如果你对集合很了解。那可以不用看。
在爬虫程序中,为了不重复爬取已经爬过的页面,我们需要把已经爬过的页面的url放进集合中,
在每一次要爬取某一个url之前,先看看集合里面是否已经存在,如果已经存在跳过这个url,如果不存在
我们把ur放进聚合中,然后再去爬取这个页面
python提供了set这种数据结构,set是一种无序的,不包含重复元素的结构,一般用来测试是否
已经包含了某元素,或者对众多元素们去重复。它支持的运算有交、并、差、对称差。像所有的
容器一样,set支持的方法有
x in set,len(set),for x in set
作为一个无序的结构,set不会记录元素的位置,以及元素插入的顺序,因此,set不支持一下方法
不支持(index,slice...)
set中的元素是可变的,改变set中元素的操作可以是add()和remove()。他没有散列值,因此
set不可以被认为是一个字典的key或者自以为其他set的元素
创建一个set可以用set()函数或者花括号{},但是创建一个空集是不能使用一个花括号的,只能用
set()函数,因为一个空的花括号创建的是一个字典数据结构,
先看一些例子吧:
1.1
s1 = {'girl','boy','woman','man','older','child','man'}
print(s1)
#结果:
{'woman', 'boy', 'child', 'man', 'girl', 'older'}
#通过第一个例子可以看出两点,第一set可以直接去重,第二set元素是无序的
1.2
s1 = {'girl','boy','woman','man','older','child','man'}
print('girl在s1中吗?','girl' in s1)
print('girls在s中吗?','girls' in s1)
#输出是:
girl在s1中吗? True
girls在s中吗? False
1.3
len(s)
s1 = {'girl','boy','woman','man','older','child','man'}
print('s1有多少元素:',len(s1))
输出的:6
显然,len计算了去重之后的元素个数
1.4
关于issubset(),和issuperset()方法
s1 = {'girl','boy','woman','man','older','child','man'}
s2 = {'boy','woman'}
s3 = {'boy','people'}
print(s2.issubset(s1)) #s2中的元素是否全属于s1中的元素
print(s3.issubset(s1)) #s3中的元素是否全属于s1中的元素
print(s1.issuperset(s2)) #s2中的元素是否全属于s1中的元素
print(s1.issuperset(s3)) #s3中的元素是否全属于s1中的元素
1.5
s2 = {'boy','woman'}
s3 = {'boy','people'}
s2 |= s3
print(s2) #以上两句话等同于print(s2.union(s3)),去重
set.union(set1,set2,set3...)方法,或者用 set | set2 | set3 |...
取并集
1.6
s2 = {'boy','woman'}
s3 = {'boy','people'}
s2 &= s3
print(s2) #以上两句话等同于print(s2.intersection(s3))
set.intersection(set1,set2,set3...),或者用 set & set2 & set3...
取交集
1.7
s2 = {'boy','woman'}
s3 = {'boy','people'}
s2 -= s3
print(s2) #以上两句话等同于print(s2.difference(s3))
set.difference(set2,set3...),或者用 set - set1 -set2...
存在于set中但是在其他set中不存在元素
1.8
s2 = {'boy','woman'}
s3 = {'boy','people'}
s2 ^= s3
print(s2) #以上两句话等同于print(s2.symmetric_difference(s3))
返回一个新的set,这个set中存放的是,两个set中各自独有的元素
1.9
最后是最基本的增删改
s1 = {'girl','boy','woman','man','older','child','man'}
print(s1)
s1.add('hello')
print(s1)
s1.remove('hello')
print(s1)
s1.discard('man')
print(s1)
s1.pop()
print(s1)
s1.clear()
有了这些基础,你就可以进入下一界的学习了,下一节将进一步学习python的正则表达式
钟志远 江苏南京 904727147
这篇文章主要讲解爬虫程序中必须要用到的python集合,如果你对集合很了解。那可以不用看。
在爬虫程序中,为了不重复爬取已经爬过的页面,我们需要把已经爬过的页面的url放进集合中,
在每一次要爬取某一个url之前,先看看集合里面是否已经存在,如果已经存在跳过这个url,如果不存在
我们把ur放进聚合中,然后再去爬取这个页面
python提供了set这种数据结构,set是一种无序的,不包含重复元素的结构,一般用来测试是否
已经包含了某元素,或者对众多元素们去重复。它支持的运算有交、并、差、对称差。像所有的
容器一样,set支持的方法有
x in set,len(set),for x in set
作为一个无序的结构,set不会记录元素的位置,以及元素插入的顺序,因此,set不支持一下方法
不支持(index,slice...)
set中的元素是可变的,改变set中元素的操作可以是add()和remove()。他没有散列值,因此
set不可以被认为是一个字典的key或者自以为其他set的元素
创建一个set可以用set()函数或者花括号{},但是创建一个空集是不能使用一个花括号的,只能用
set()函数,因为一个空的花括号创建的是一个字典数据结构,
先看一些例子吧:
1.1
s1 = {'girl','boy','woman','man','older','child','man'}
print(s1)
#结果:
{'woman', 'boy', 'child', 'man', 'girl', 'older'}
#通过第一个例子可以看出两点,第一set可以直接去重,第二set元素是无序的
1.2
s1 = {'girl','boy','woman','man','older','child','man'}
print('girl在s1中吗?','girl' in s1)
print('girls在s中吗?','girls' in s1)
#输出是:
girl在s1中吗? True
girls在s中吗? False
1.3
len(s)
s1 = {'girl','boy','woman','man','older','child','man'}
print('s1有多少元素:',len(s1))
输出的:6
显然,len计算了去重之后的元素个数
1.4
关于issubset(),和issuperset()方法
s1 = {'girl','boy','woman','man','older','child','man'}
s2 = {'boy','woman'}
s3 = {'boy','people'}
print(s2.issubset(s1)) #s2中的元素是否全属于s1中的元素
print(s3.issubset(s1)) #s3中的元素是否全属于s1中的元素
print(s1.issuperset(s2)) #s2中的元素是否全属于s1中的元素
print(s1.issuperset(s3)) #s3中的元素是否全属于s1中的元素
1.5
s2 = {'boy','woman'}
s3 = {'boy','people'}
s2 |= s3
print(s2) #以上两句话等同于print(s2.union(s3)),去重
set.union(set1,set2,set3...)方法,或者用 set | set2 | set3 |...
取并集
1.6
s2 = {'boy','woman'}
s3 = {'boy','people'}
s2 &= s3
print(s2) #以上两句话等同于print(s2.intersection(s3))
set.intersection(set1,set2,set3...),或者用 set & set2 & set3...
取交集
1.7
s2 = {'boy','woman'}
s3 = {'boy','people'}
s2 -= s3
print(s2) #以上两句话等同于print(s2.difference(s3))
set.difference(set2,set3...),或者用 set - set1 -set2...
存在于set中但是在其他set中不存在元素
1.8
s2 = {'boy','woman'}
s3 = {'boy','people'}
s2 ^= s3
print(s2) #以上两句话等同于print(s2.symmetric_difference(s3))
返回一个新的set,这个set中存放的是,两个set中各自独有的元素
1.9
最后是最基本的增删改
s1 = {'girl','boy','woman','man','older','child','man'}
print(s1)
s1.add('hello')
print(s1)
s1.remove('hello')
print(s1)
s1.discard('man')
print(s1)
s1.pop()
print(s1)
s1.clear()
有了这些基础,你就可以进入下一界的学习了,下一节将进一步学习python的正则表达式
钟志远 江苏南京 904727147
0 0
- python爬虫(三)--Python的set()
- python 爬虫(三)
- Python爬虫实例三
- Python爬虫入门三
- python爬虫(三)
- python爬虫(三)
- Python爬虫三(Cookie的使用)
- Python爬虫(单线程爬虫(三))
- Python 爬虫笔记(三)
- python网络爬虫(三)
- python爬虫笔记(三)
- Python爬虫小记(三)
- python网络爬虫(三)
- python基础三_dict&set
- 我的Python爬虫(三):数据的实时监控
- Python的爬虫程序
- Python简易的爬虫
- Python的爬虫
- Swift 懒加载(lazy)
- HttpClient之Post通信与服务器连接实现登陆功能
- 第74讲:从Spark源码的角度思考Scala中的模式匹配学习笔记
- 正则表达式模板大全
- 程序设计策略(设计一款APP的步骤)
- python爬虫(三)--Python的set()
- thinkpad s3 安装win8 kali双系统笔记
- XSI进程间通信---信号量
- struts2中jsp页面向后台传值的三种方法
- 指针详解
- nefu oj 986 林大的入学体检(运算符重载在排序中的运用)
- 我博客搬家了
- javascript_BOM&DOM&JSON
- losersaver硕士待遇杂谈