介绍
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 入门教程——目录索引