【零基础学Python爬虫】Python数据结构:列表、字典、元组和集合

时间:2018-08-08 15:43:12   来源:上海尚学堂   阅读:
上次我们讲过了【零基础学Python爬虫】Python字符串方法Python函数与控制语句  ,接下来我们再看Python的数据结构。本文主要讲解 Python的4种基本数据结构,即列表、字典、元组和集合。


1、列表

在爬虫实战中,使用最多的就是列表数据结构,不论是构造出的多个URL,还是爬取到的数据,大多数都为列表数据结构。下面首先介绍列表最显著的特征:

(1)列表中的每一个元素都是可变的;
(2)列表的元素都是有序的,也就是说每个元素都有对应的位置(类似字符串的切片
和索引);
(3)列表可以容纳所有的对象。

列表中的每个元素都是可变的,这意味着可以对列表进行增、删、改操作,这些操作在爬虫中很少使用,因此这里不再给读者添加知识负担。

列表的每个元素都有对应的位置,这种用法与字符串的切片和索引很相似
list=[‘peter', ‘lisa', ‘solca', ‘mary']
print (list[0])
print (list[2:])
# result
peter
[‘socla’,‘mary’]

如果为切片,返回的也是列表的数据结构。
列表可以容纳所有的对象:
list= [
l,
l.l,
‘string’,
print(1),
True
[1,2],
(1,2),
{‘key’,‘value’}
]

列表中会经常用到多重循环,因此读者有必要去了解和使用多重循环。现在,摆在大家面前有两个列表,分别是姓名和年龄的列表:

names = [‘mary',‘solca’,‘lisa']
ages = [23,19,36]

这时可以通过多重循环让name和age同时打印在屏幕上:
names = [‘mary',‘solca’,‘lisa']
ages = [23,19,36]
for name,age in zip(names,ages):
 print(name,age)
# result
mary  23
solca  19
lisa  36
 
注意:多重循环前后变量要一致。

在爬虫中,经常请求多个网页,通常情况下会把网页存到列表中,然后循环依次取出并访问爬取数据。这些网页都有一定的规律,如果是手动将这些网页URL存入到列表中,不仅花费太多时间,也会造成代码冗余。这时可通过列表推导式,构造出这样的列表,例如某个网站每页的URL是这样的(一共13页):

http://sh.xiaozhu.com/search-duanzufang-pl-0/
http://sh.xiaozhu.com/search-duanzufang-p2-0/
http://sh.xiaozhu.com/search-duanzufang-p3-0/
http://sh.xiaozhu.com/search-duanzufang-p4-0/

通过以下代码即可构造出12页URL的列表数据:
urls = [‘http://sh.xiaozhu.com/search-duanzufang-p{}-0/'.format(number)
for number in range(1,13)]
for url in urls:
    print (url)

通过一行代码即可构造出来,通过for循环打印出每个URL,即:
http://sh.xiaozhu.com/search-duanzufang-pl-0/
http://sh.xiaozhu.com/search-duanzufang-p2-0/
http://sh.xiaozhu.com/search-duanzufang-p3-0/
http://sh.xiaozhu.com/search-duanzufang-p4-0/
http://sh.xiaozhu.com/search-duanzufang-p5-0/
http://sh.xiaozhu.com/search-duanzufang-p6-0/
http://sh.xiaozhu.com/search-duanzufang-p7-0/
http://sh.xiaozhu.com/search-duanzufang-p8-0/
http://sh.xiaozhu.com/search-duanzufang-p9-0/
http://sh.xiaozhu.com/search-duanzufang-p10-0/
http://sh.xiaozhu.com/search-duanzufang-p11-0/
http://sh.xiaozhu.com/search-duanzufang-p12-0/

 

2、字典

Python的字典数据结构与现实中的字典类似,以键值对(‘key’-‘value’)的形式表现出来。本文中只讲解字典的创造,字典的操作在后面会详细介绍。字典的格式如下:
user_info ={
‘name':‘mary’,
‘age’:‘23’
‘sex’:‘female’

注意:插入MongoDB数据库需用字典结构。

3、元组和集合

在爬虫中,元组和集合很少用到,因此这里只做简单介绍。元组类似于列表,但是元组的元素不能修改只能查看,元组的格式如下

tuple = (1,2,3)

集合的概念类似数学中的集合。每个集合中的元素是无序的,不可以有重复的对象,因此可以通过集合把重复的数据去除。

list =[‘AOB’,‘DEK’,‘AOB’]
set = set(list)
print(set)
# result {‘AOB’,‘DEK’}
 
注意:集合是用大括号构建的。
 


分享:0

电话咨询

客服热线服务时间

周一至周五 9:00-21:00

周六至周日 9:00-18:00

咨询电话

021-67690939
15201841284

微信扫一扫