元组是 Python 中的内置数据类型之一。Python 元组是由括号 (()
) 包围的逗号分隔的项目序列。Python 元组中的项目不必是相同的数据类型。
以下是一些 Python 元组的例子:
tup1 = ("Rohan", "Physics", 21, 69.75)
tup2 = (1, 2, 3, 4, 5)
tup3 = ("a", "b", "c", "d")
tup4 = (25.50, True, -55, 1+2j)
空元组表示为两个括号中没有任何内容:
tup1 = ();
要写一个只包含一个值的元组,你需要包含一个逗号,即使只有一个值:
tup1 = (50,);
以下是一些需要注意的点:
-
在 Python 中,元组是一种序列数据类型。它是一个有序的项目集合。元组中的每个项目都有一个唯一的索引位置,从 0 开始。
-
在 C/C++/Java 数组中,数组元素必须是相同类型;另一方面,Python 元组可以包含不同类型的数据对象。
-
Python 中的元组和列表都是序列。两者之间的一个主要区别在于,Python 列表是可变的,而元组是不可变的。虽然可以使用索引来访问元组中的任意项,但是不能修改、移除或添加项。
访问元组中的值
要访问元组中的值,请使用带有索引或索引范围的方括号来进行切片以获取该索引处的值。例如:
tup1 = ('physics', 'chemistry', 1997, 2000);
tup2 = (1, 2, 3, 4, 5, 6, 7 );
print("tup1[0]: ", tup1[0]);
print("tup2[1:5]: ", tup2[1:5]);
当执行上述代码时,会产生如下结果:
tup1[0]: physics
tup2[1:5]: [2, 3, 4, 5]
更新元组
元组是不可变的,这意味着你不能更新或改变元组元素的值。你可以使用现有元组的部分来创建新的元组,如下例所示:
tup1 = (12, 34.56);
tup2 = ('abc', 'xyz');
tup3 = tup1 + tup2;
print(tup3);
当执行上述代码时,会产生如下结果:
(12, 34.56, 'abc', 'xyz')
删除元组元素
移除单个元组元素是不可能的。当然,可以创建另一个元组,抛弃不需要的元素。
要显式地删除整个元组,只需使用 del
语句。例如:
tup = ('physics', 'chemistry', 1997, 2000);
print(tup);
del tup;
print("After deleting tup : ");
print(tup);
这会产生如下结果。注意异常的抛出,这是因为删除 tup
后元组已不存在:
('physics', 'chemistry', 1997, 2000)
After deleting tup :
Traceback (most recent call last):
File "test.py", line 9, in <module>
print(tup);
NameError: name 'tup' is not defined
Python 元组操作
在 Python 中,元组是一种序列。因此,我们可以使用 +
操作符来连接两个元组,并使用 *
操作符来重复元组。成员运算符 "in"
和 "not in"
可以与元组对象一起工作。
Python 表达式 |
结果 |
描述 |
(1, 2, 3) + (4, 5, 6) |
(1, 2, 3, 4, 5, 6) |
连接 |
('Hi!',) * 4 |
('Hi!', 'Hi!', 'Hi!', 'Hi!') |
重复 |
3 in (1, 2, 3) |
True |
成员资格 |
即使元组中只有一个对象,你也必须在其后加上一个逗号。否则,它将被视为一个字符串。
索引、切片和矩阵
由于元组是序列,因此索引和切片对于元组的工作方式与字符串相同。假设以下输入:
L = ('spam', 'Spam', 'SPAM!')
Python 表达式 |
结果 |
描述 |
L[2] |
'SPAM!' |
偏移量从零开始 |
L[-2] |
'Spam' |
负数:从右边开始计数 |
L[1:] |
['Spam', 'SPAM!'] |
切片获取部分 |
不使用括号界定符
任何一组多个对象,默认情况下,如果没有使用诸如列表的方括号或元组的圆括号之类的标识符,将被视为元组,如以下简短示例所示:
print('abc', -4.24e93, 18+6.6j, 'xyz');
x, y = 1, 2;
print("Value of x , y : ", x,y);
当执行上述代码时,会产生如下结果:
abc -4.24e+93 (18+6.6j) xyz
Value of x , y : 1 2
内置函数与元组
以下是可以与元组一起使用的内置函数:
序号 |
函数与描述 |
1 |
cmp(tuple1, tuple2) - 比较两个元组的元素。 |
2 |
len(tuple) - 给出元组的总长度。 |
3 |
max(tuple) - 返回元组中具有最大值的项。 |
4 |
min(tuple) - 返回元组中具有最小值的项。 |
5 |
tuple(seq) - 将列表转换为元组。 |