介绍

Python 的 元组(tuple)与列表类似,同样用于存储一组数据,且这些数据可以是不同类型的数据集合。

元组和列表的不同之处在于元组的元素一旦定义后便不能修改,属于只读列表。
元组的定义:用 () 小括号括住元素,内部元素之间用逗号 , 隔开,例如:

tuple_val = (1, 2, 'a', 'python')

列表拥有的下标特性元组也拥有,并且使用方法一致!

创建元组变量

#!/usr/bin/python3
# -*- coding:utf-8 -*-

tup1 = (1,2,'a','b',"Hello","World","Python")   # 创建一个元组
tup2 = ()   # 当不赋值时表示创建一个空元组

print(tup1)
print(tup2)

输出结果:

(1, 2, 'a', 'b', 'Hello', 'World', 'Python')
()

提示:创建元组时,其内部元素可以是纯整型,纯字符型,纯字符串或者是混合型元素。

提取元组元素

提取元组元素与列表/字符串类似,同样使用下标的方式去提取,具体有:

  • 从 左往右 索引,下标从 0 开始,往下 + 1递增;
  • 从 右往左 索引,下标从 -1 开始,往下 -1 递增;

实例如下(从左往右索引):

#!/usr/bin/python3
# -*- coding:utf-8 -*-

tup = (1,2,'a','b',"Hello","World","Python")  # 创建一个元组

print("元组全部元素为:", tup)
print("元组第一个元素为:", tup[0])
print("元组前4个元素为:", tup[:4])
print("元组从第5个到末端元素为:", tup[4:])
print("元组从第2个到第4个的元素为:", tup[1:4])

输出结果:

元组全部元素为: (1, 2, 'a', 'b', 'Hello', 'World', 'Python')
元组第一个元素为: 1
元组前4个元素为: (1, 2, 'a', 'b')
元组从第5个到末端元素为: ('Hello', 'World', 'Python')
元组从第2个到第4个的元素为: (2, 'a', 'b')

删除元组变量

由于元组是 可读列表 的特性,所有删除元组只能将整个元组删除(丢失该元组所有数据),不能删除元组中的某个元素,这也是与列表(List)不一样的地方。
删除元组同样使用 del 语句来来删除,实例如下:

#!/usr/bin/python3
# -*- coding:utf-8 -*-

tup = (1,2,3,'a','b')  # 创建一个元组
print(tup)   # 打印元组
del tup   # 删除整个元组
print(tup)

输出结果:

(1, 2, 3, 'a', 'b')
Traceback (most recent call last):
File "./tuple.py", line 27, in
print tup
NameError: name 'tup' is not defined

分析:从输出结果可以看出元组在删除后,解析器就会报异常信息,说没有定义 tup 这个元组。

元组的其它操作

元组同样可以进行连接操作(+),重复操作(*),运算操作(+、-、*、/)等,实例如下:

#!/usr/bin/python3
# -*- coding: utf-8 -*-

tup1 = (200,500,"Hello World")
tup2 = ("Learn Python",5)

print(tup1 + tup2)  # 连接tup1 和 tup2
print(tup2 * 3)  # 将tup2重复打印3次

print(tup1[0] + tup1[1])  # 将tup1的第1个元素 + tup2第2个元素
print(tup1[1] * tup2[1])  # 将tup1的第2个元素 * tup2的第2个元素

输出结果:

(200, 500, 'Hello World', 'Learn Python', 5)
('Learn Python', 5, 'Learn Python', 5, 'Learn Python', 5)
700
2500

元组的非法操作

由于元组是属于只读型列表,所有对它内部某个元素修改的操作都是非法的。示例如下:

>>> tup = (1,2,'a',"python")
>>> tup[2] = 300 #非法修改元组元素
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>>
>>> del tup[2] #非法删除元组内元素
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object doesn't support item deletion
>>>

元组内置函数

函数功能
len( tuple )计算元组的元素总和
max( tuple )返回元组中的最大值
min( tuple )返回元组中的最小值
tuple( obj )将对象转为元组类型
cmp( tuple1 ,tuple2)比较两个元组元素

完整学习教程请访问Python3 入门教程——目录索引

最后修改:2022 年 06 月 11 日
如果觉得我的文章对你有用,请随意赞赏