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

1.5.2 元组

Python的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。元组的创建很简单,只需要在括号中添加元素,并使用逗号隔开。元组的元素都有确定的顺序,元组的索引也是以0为基点的。

1.元组的创建与删除

在Python中创建元组有两种方法,即“直接以赋值操作符创建元组”和“创建数值元组”。下面分别介绍。

(1)直接以赋值操作符创建元组

通常创建元组可使用圆括号将数据括起来,也可以将一些值用逗号隔开,这样就能自动创建一个元组。与其他类型的变量一样,创建元组时也可使用赋值操作符“=”将元组赋值给变量。需要注意的是,当元组中只有一个元素时,需要在最后加一个逗号,以防止跟普通的分组操作符混淆,创建元组的示例如下所示。

【例1-32】创建元组示例


>>> 'a','b','c'                    # 将一些值用逗号隔开,自动创建元组
('a', 'b', 'c')
>>> ('a','b','c')                  # 用圆括号创建元组
('a', 'b', 'c')
>>> a = (0,1,2)                    # 用“=”将元组赋值给变量a
>>> a[1]                           # 元组支持使用下标访问特定位置的元素
1
>>> a[-1]                          # 元组支持双向索引
2
>>> a[0]=2                         # 元组不可变
TypeError: 'tuple' object does not support item assignment
>>> b = (4,)                       # 元组中只有一个元素,在最后加上一个逗号
>>> b
(4,)
>>> c = ()                         # 创建空元组
>>> d = tuple()

(2)创建数值元组

Python提供的tuple()函数可以将range()函数循环出来的结果转换成数值元组。

【例1-33】创建数值元组示例


>>> tuple(range(10))               # 将迭代对象转换为元组
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)

2.访问元组元素

元组可以使用下标索引来访问元组中的值,示例如下。

【例1-34】访问元组元素示例


>>> aTuple=(1,'a',2.0,['i','love','python'])
>>> aTuple[0:3]                    # 访问前三个元素
(1, 'a', 2.0)
>>> aTuple[1:3]                    # 访问特定位置的元素
('a', 2.0)
>>> aTuple[:4]
(1, 'a', 2.0, ['i', 'love', 'python'])
>>> aTuple[3][2]
'python'

3.修改元组元素

元组是不可变类型,即不能更新或者改变元组中的元素,也无法在元组中添加和删除元素。但是,可以通过对元组重新赋值或拼接来修改元组中的元素。在元组连接时,连接的内容必须都是元组,如果要连接的元组只有一个元素,那么一定不要忘了后面的逗号,参考如下示例中的使用方法。

【例1-35】修改元组元素示例


>>> aTuple = aTuple[0],aTuple[1],aTuple[2] # 对元组进行重新赋值
>>> aTuple
(1, 'a', 2.0)
>>> a = ('i',)
>>> b = ('love',)
>>> c = ('python',)
>>> aTuple = a+b+c                         # 对元组进行连接组合
>>> aTuple
('i', 'love', 'python')

4.删除元组

元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组。

【例1-36】删除元组示例


>>> tup = ('physics', 'chemistry', 1997, 2000)
>>> del tup
>>> tup
NameError: name 'tup' is not defined

5.元组运算符

与字符串一样,元组之间可以使用“+”和“*”来进行运算。这就意味着它们可以组合和复制,运算后会生成一个新的元组。常见的元组运算符如表1-7所示。

表1-7 元组运算符表

6.元组的索引和截取

元组也是一个序列,所以我们可以访问元组中指定位置的元素,也可以截取索引中的一段元素。


tuple=('a', 'b', 'c')

元组的索引和截取示例如表1-8所示。

表1-8 元组的索引和截取举例