Python程序使用元组
元组的定义
在Python中,元组是一个有序、不可变的序列。元组中的每个元素可以是不同类型的数据,但所有元素都是固定的,不可通过修改来改变它们的值。
元组可以使用小括号( )来创建,元素之间使用逗号( , )来分隔。例如:
t = (1, 2, 'hello', [4, 5])
这里我们定义了一个包含四个元素的元组,第一个元素是整数值1,第二个元素是整数值2,第三个元素是字符串’hello’,第四个元素是一个列表[4, 5]。
元组的访问
通过下标(索引值)可以访问元组中的元素,下标从0开始。例如:
t = (1, 2, 'hello', [4, 5])
print(t[0]) # 输出1
print(t[2]) # 输出'hello'
print(t[3][0]) # 输出4
注意,元组是不可变的,因此不能对元组中的元素进行修改。例如:
t = (1, 2, 'hello', [4, 5])
t[0] = 3 # TypeError: 'tuple' object does not support item assignment
元组的拆包
元组可以被“拆包”,即将元组的元素赋值给多个变量。例如:
t = (1, 2, 3)
x, y, z = t
print(x) # 输出1
print(y) # 输出2
print(z) # 输出3
需要注意的是,拆包的变量数必须与元组中的元素数相等,不然会引起ValueError异常。例如:
t = (1, 2, 3)
x, y = t # ValueError: too many values to unpack (expected 2)
元组字面创建元组
元组字面创建元组,表示的就是用()进行元组的创建操作。例如:
t = (1, 2, 'hello', [4, 5])
其中,括号()就是创建元组的标志,它用于在不使用构造函数的情况下创建元组。
再举一个例子,如果要创建一个仅包含一个元素的元组(所谓的“单元素元组”),必须要在元素后面添加一个逗号,否则它将被认为是一个普通的数据类型。例如:
t = (1,) # 创建一个单元素元组
print(t) # 输出(1,)
若不加逗号,它则会被认为是一个整数。例如:
t = (1) # 不加逗号,创建的t会被认为是一个整数
print(type(t)) # 输出<class 'int'>
我们需要注意到,如果不加逗号创建单元素元组,就不能进行拆包操作。例如:
t = (1,) # 创建一个单元素元组
x, = t # 拆包
print(x) # 输出1
如果不加逗号,就会引起ValueError异常。例如:
t = (1) # 不加逗号,创建的t会被认为是一个整数
x, = t # ValueError: not enough values to unpack (expected 1, got 0)