Python 中的元组
元组很像列表,这就是为什么我们可以像定义列表一样定义它们。简单来说,一个元组就是一个数据序列。
与列表不同的是,元组是不可变的,即元组内部的数据是不能修改的,列表的情况则相反。除此之外,元组非常类似于列表,这将使我们更容易理解,因为我们已经知道列表。如果没有,我们建议您先浏览列表教程。
定义元组
要定义一个元组,我们只需要分配一个变量,用逗号分隔多个值,该变量将被称为元组。
>>> myTuple = 1, 2, 3, 4
如果您尝试在 IDLE 下打印它,
>>> print (myTuple);
(1, 2, 3, 4)
在上例中可以看到myTuple变量实际上是 1、2、3、4 的整数集合。另外,注意那些在打印时出现在整数周围的圆形括号,这些实际上会帮助你区分列表和元组。因为在列表的情况下,我们在列表元素周围有方括号。
很明显可以在一个元组中添加不同类型的数据,
>>> secondTuple = 1, 2, "python", 4
>>> print (secondTuple);
(1,2,“python”,4)
一个空元组可以使用tuple()函数或者只使用一个空括号()来创建。
>>> emptyTuple = ();
>>> anotherEmptyTuple = tuple();
上面的语句将创建没有元素的元组。编译器会知道emptyTuple和anotherTuple是元组,其中没有元素。
元组中的索引
元组中的索引也与列表中的索引非常相似,第一个元素的索引为零,并且在接下来的连续元素中继续增加。此外,反向索引在元组中也有效,即最后一个元素可以通过-2、-3等使用索引-1和连续的先前数字来访问。让我们举个例子,
>>> example = "apple", "orange", "banana", "berry", "mango"
>>> print (example[0]);
苹果
在下表中,我们标记了正向和反向索引的元组元素:
| 价值 | 向前索引 | 反向索引 | | 苹果 | Zero | -5 | | 橙色的 | one | -4 | | 香蕉 | Two | -3 | | 浆果 | three | -2 | | 芒果 | four | -1 |
向元组添加元素
正如我们所知,元组是不可变的,因此存储在元组中的数据是不可编辑的,但是向元组中添加更多数据是绝对可能的。这可以使用加法运算符来完成。假设有一个元组,
>>> t = (1, 2, 3, 4, 5)
如果您想向元组中添加另一个元素7,那么您可以按如下方式进行:
>>> t = t + (7,)
如您所见,我们使用加法运算符对元组t进行了add(7,)。
>>> print (t);
(1, 2, 3, 4, 5, 7)
因此,我们可以使用+运算符向元组中添加任何类型的元素。
如果我们试着想一想,我们还能用+运算符做什么,我们可能会意识到它也可以用来组合二元组。例如:
>>> print ((1, 2, 5, 8) + (2, 9, 4));
(1, 2, 5, 8, 2, 9, 4)
您可以使用一个元组来创建另一个元组。
删除元组
为了删除元组,使用del关键字。要删除名为myTuple的元组(我们之前已经定义过),请遵循以下示例:
>>> del (myTuple);
并且myTuple将从内存中删除。
元组中的切片
元组切片的工作原理与列表完全相同。让我们从一个例子开始:
>>> t = (1, 2, 3, 4)
>>> print(t[2:4])
(3, 4)
这里,t[2:4]的意思是,从索引2到索引4对元组进行切片,然后取出切片。
切片也可以反向进行,使用负索引从反向遍历元组。
基本操作和功能
我们可以对元组执行的各种操作与列表非常相似。事实上,您刚刚看到了带有元组的+运算符,它处理元组就像处理列表一样。元组的其他一些运算符包括:
增加
将一个元组乘以任意整数,x 将简单地创建另一个元组,其中第一个元组中的所有元素重复 x 次。例如,t*3表示,元组t的元素将重复3次。
>>> t = (2, 5)
>>> print (t*3);
(2, 5, 2, 5, 2, 5)
添加
使用加法运算符,对于两个或更多元组,将所有元素加到一个新元组中。例如,
>>> t = (2, 5, 0) + (1, 3) + (4,)
>>> print (t);
(2, 5, 0, 1, 3, 4)
in关键字
in关键字,不仅可以用于元组,也可以用于字符串和列表。它用于检查序列中是否存在任何元素。如果找到元素则返回True,否则返回False。例如,
>>> t = (1, 2, 3, 6, 7, 8)
>>> 2 in t
>>> 5 in t
真假
len()功能
正如您可能已经猜到的,这个函数用于获取任何元组中的元素数量。
>>> t = 1, 2, 3
>>> print (len(t))
three
cmp()功能
这用于比较两个元组。它将返回1、0或-1,这取决于被比较的两个元组是否相似。
cmp()函数以两个元组作为参数,两者进行比较。如果 T1 是第一个元组, T2 是第二个元组,那么:
- 如果 T1 > T2 ,则 cmp(T1,T2)返回 1
- 如果 T1 = T2 ,则 cmp(T1,T2)返回 0
- 如果 T1 > T2 ,则 cmp(T1,T2)返回 -1
max()和min()功能
为了找到元组中的最大值,我们可以使用max()函数,而为了找到最小值,可以使用min()函数。
>>> t = (1, 4, 2, 7, 3, 9)
>>> print (max(t))
>>> print (min(t))
9 1