上节回顾:Python入门系列1——列表
本节我们将继续介绍Python的四个基本数据结构之一——元组。
元组
元组(tuple)数据结构与列表类似,其中元素可以有不同的类型,并且元组中元素的索引和切片操作都相同。但是它与列表最大的区别在于:元组中的元素是不可变的,即一旦初始化之后就不能够再做修改。
1.1
创建元组
元组的创建与列表类似,只是元组使用小括号将各个元素括起来(列表用的是方括号)。
'Bob'12'Male'91
output:
('Bob', 12, 'Male', 91)
1.2
修改元组
列表可以被修改,但是元组无法被修改。例:
'Bob'12'Male'91
output:
['Bob', 3, 'Male', 91]
'Bob'12'Male'91
output:
Traceback (most recent call last):
File "", line 2, in
Bob_tuple[1]=3
TypeError: 'tuple' object does not support item assignment
可以看到当我们想把元组Bob_tuple的第1个元素改变为3时,出现了报错信息'tuple' object does not support item assignment(“‘元组’对象不支持赋值”)。
由于元组是不可变的,因此元组对象没有append, insert这样的方法。那我们使用list岂不是更好?实际上,tuple的使用可以使得代码更安全,防止错误赋值导致重要对象的改变。
顺便提一下,字符串可以看做是一种特殊的元组,每个字符就是一个元素。因此字符串是不可变的,如下所示,当我们想改版name变量的第一个元素时,系统将会报错:
name = 'Bob'
name[0] = 'P'
output:
Traceback (most recent call last):
File "", line 2, in
name[0]='p'
TypeError: 'str' object does not support item assignment
元组不可变是指元组中的每个元素指向的对象不改变,即Bob_tuple的第2个元素指向12,就不能够改为指向3。如果元素是指向一个列表,虽然不能将列表对象改为其他对象,但是可以对指向的这个列表本身进行修改。
1.3
删除元组
元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组。
'Bob'12'Male'91
output:
('Bob', 12, 'Male', 91)
Traceback (most recent call last):
File "", line 4, in
print Bob_tuple
NameError: name 'Bob_tuple' is not defined
1.4
元组索引与截取
因为元组也是一个序列,所以我们可以访问元组中的指定位置的元素,也可以截取索引中的一段元素,如下所示:
Bob_list=['Bob',12,'Male',91]
1.5
元组运算符
与字符串一样,元组之间可以使用 + 号和 * 号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组。
1.6
元组内置函数
Python元组包含了以下内置函数
领取专属 10元无门槛券
私享最新 技术干货