Python 元组详解:定义、使用与列表的核心区别
元组概述
元组是有序且不可变的对象集合。元组是序列,类似列表。区别:元组不可修改,用圆括号;列表可修改,用方括号。
创建元组只需放入不同逗号分隔值,可选用圆括号括起。例如:
tup1 = ('physics', 'chemistry', 1997, 2000)
tup2 = (1, 2, 3, 4, 5)
tup3 = "a", "b", "c", "d"
空元组写为两个空圆括号:
tup1 = ()
单元素元组必须包含逗号,即使只有一个值:
tup1 = (50,)
类似字符串索引,元组索引从 0 开始,支持切片、连接等操作。
访问元组值
使用方括号切片及索引获取指定索引处的值。例如:
在线演示#!/usr/bin/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]
更新元组
元组不可变,无法更新或改变元素值。但可截取现有元组部分创建新元组:
在线演示#!/usr/bin/python
tup1 = (12, 34.56)
tup2 = ('abc', 'xyz')
# 以下操作对元组无效
# tup1[0] = 100
# 创建新元组
tup3 = tup1 + tup2
print tup3
执行结果:
(12, 34.56, 'abc', 'xyz')
删除元组元素
无法移除单个元组元素。但可组合新元组丢弃不需元素。
显式删除整个元组用 del 语句。例如:
在线演示#!/usr/bin/python
tup = ('physics', 'chemistry', 1997, 2000)
print tup
del tup
print "After deleting tup : "
print tup
结果如下。注意抛出异常,因 del tup 后元组不再存在:
('physics', 'chemistry', 1997, 2000)
After deleting tup :
Traceback (most recent call last):
File "test.py", line 9, in
print tup
NameError: name 'tup' is not defined
基本元组操作
元组对 + 和 * 运算符响应类似字符串,表示连接和重复,结果为新元组而非字符串。
元组响应字符串章节的所有通用序列操作:
| Python 表达式 | 结果 | 说明 |
|---|---|---|
| len((1, 2, 3)) | 3 | 长度 |
| (1, 2, 3) + (4, 5, 6) | (1, 2, 3, 4, 5, 6) | 连接 |
| ('Hi!',) * 4 | ('Hi!', 'Hi!', 'Hi!', 'Hi!') | 重复 |
| 3 in (1, 2, 3) | True | 成员检查 |
| for x in (1, 2, 3): print x, | 1 2 3 | 迭代 |
索引、切片与矩阵
元组作为序列,索引和切片同字符串方式工作。假设输入:
L = ('spam', 'Spam', 'SPAM!')
| Python 表达式 | 结果 | 说明 |
|---|---|---|
| L[2] | 'SPAM!' | 索引从零开始 |
| L[-2] | 'Spam' | 负索引:从右侧计数 |
| L[1:] | ['Spam', 'SPAM!'] | 切片获取区段 |
无封闭定界符
任何多对象逗号分隔集合,无识别符号(列表用方括号、元组用圆括号等),默认为元组:
在线演示#!/usr/bin/python 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) - 将列表转为元组 |
Python
- 精通Python数据类型:实战指南
- 精通Python运算符:全面指南
- 精通Python Pass语句:实战指南
- 精通Python函数参数:位置、关键字与默认参数
- 精通 Python 字典:创建、操作与进阶技巧
- 精通 Python 迭代器:工作原理与自定义构建
- Python 闭包详解:嵌套函数如何捕获变量
- 精通 Python datetime:日期、时间与时区实战指南
- 精通 Python time.sleep():最佳实践、多线程与实战案例
- Python 元组完全指南:打包、解包、比较、切片与字典键应用
- 精通 Python enumerate():为列表、元组、字符串、字典带索引循环
- Python 语言概览:高级、可读、交互式与面向对象