Python网络爬虫技术与实战
上QQ阅读APP看书,第一时间看更新

1.5.1 列表

列表是一个与任意类型对象位置相关的有序集合,它没有固定的大小。和字符串类型一样,列表类型也是序列式的数据类型,可以通过下标或者切片操作来访问某一个或者某一系列连续的元素。但是,列表是可变的,这是它区别于字符串和元组的最重要的特点,用一句话来概括:列表可以修改,而字符串和元组不能。

在形式上,列表的所有元素放在一对方括号中,相邻元素之间使用逗号分隔。在Python中,同一列表内元素的数据类型各不相同,可以同时包含整数、实数、字符串等基本类型的元素,也可以包含列表、元组、字典、集合、函数以及其他任意对象。如果只有一对方括号而没有任何元素,则表示空列表。与字符串的索引一样,列表索引从0开始。列表可以进行截取、组合等。

如下示例给出了合法的列表对象。

【例1-23】列表对象示例


[1,3,5,7,9]
[123, 'abc',3.6,['a','b']]
[{3.6},(1,2,3)]

下面讲解列表的操作。

1.列表的创建与删除

1)使用赋值操作符“=”直接将一个列表常量赋值给变量即可创建列表对象,可将多种Python支持的数据放到同一个列表中,示例如下。

【例1-24】创建列表示例


list1 = ['Google', 'Runoob', 1997, 2000]
list2 = [1, 2, 3, 4, 5 ]
list3 = ["a", "b", "c", "d"]

2)使用del命令删除列表,示例如下。

【例1-25】删除list1列表


>>> list1=[1,2,3,4,5]                      # 创建列表list1
>>> del list1                              # 删除列表list1
>>> list1                  
NameError: name 'list1' is not defined     # 列表删除后无法访问,抛出异常

2.访问列表中的元素

使用下标索引来访问列表中的值,也可以使用方括号的形式来截取字符,示例如下。

【例1-26】访问list1和list2列表


>>> list1 = ['Google', 'Runoob', 1997, 2000];
>>> list2 = [1, 2, 3, 4, 5, 6, 7 ];
>>> print ("list1[0]: ", list1[0])
list1[0]:  Google                          # 输出list1[0]的值
>>> print ("list2[1:5]: ", list2[1:5])
list2[1:5]:  [2, 3, 4, 5]                  # 输出list2[1:5]的值

3.更新列表元素

更新列表包含添加、修改和删除列表元素。

(1)添加元素

可用“+”运算符、append()等方法向列表中添加元素。

通过“+”运算符连接列表创建一个新列表。列表可包含任何数量的元素,没有大小限制(除了可用内存的限制)。列表可包含任何数据类型的元素,单个列表中的元素无须全为同一类型。关于“+”运算符的用法示例如下所示。

【例1-27】利用“+”运算符向list列表中添加元素


>>> list=[1]
>>> list=list+['a',1.0]
>>> list
[1, 'a', 1.0]

append()方法可在列表的尾部添加一个新的元素,示例如下。

【例1-28】利用append()方法向list列表中添加元素


>>> list.append('python')
>>> list
[1, 'a', 1.0, 'python']

(2)修改元素

修改列表很容易,只需要使用普通赋值语句,使用索引表示法给特定位置的元素赋值,示例如下。

【例1-29】修改list列表中的第二个元素


>>> list[1]=2
>>> list
[1, 2, 'a', 1.0, 'python', 'b']

(3)删除元素

用del语句删除列表中的元素,示例如下。

【例1-30】使用del删除列表元素


list[1,2,'a',1.0]
print("原始列表:",list)
del list[1]
print("删除第二个元素:",list)

4.列表脚本操作符

列表对“+”和“*”的操作符与字符串相似,“+”用于组合列表,“*”用于重复列表,如表1-4所示。

表1-4 脚本操作符

5.列表的截取与拼接

Python的列表截取与字符串操作类型如下述代码及表1-5所示。


list=['I','Love','Python']

表1-5 截取与拼接举例

列表还支持拼接操作,示例如下。

【例1-31】拼接操作示例


>>> squares = [1, 4, 9, 16, 25]
>>> squares += [36, 49, 64, 81, 100]
>>> squares
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
>>>

6.列表常用方法

列表对象常用的方法如表1-6所示。append()方法在上文中已举例说明。

表1-6 列表常用方法表