Python 元组完全指南:打包、解包、比较、切片与字典键应用
理解 Python 元组匹配
元组匹配通过比较指定元素(通常是第二个)对元组分组。常用模式是用字典以元组元素为键。也可从现有元组切片构建新元组。
元组基本语法
用括号包裹逗号分隔的值定义元组:
tup = ('Jan', 'Feb', 'Mar')
空元组用两个空括号:tup1 = ()。单元素元组需加尾随逗号:tup1 = (50,)。索引从 0 开始,支持拼接与切片。
元组赋值(解包)
Python 支持用元组同时给多变量赋值,适合解包结构化数据。
tup1 = ('Robert', 'Carlos', '1965', 'Terminator 1995', 'Actor', 'Florida')
tup2 = (1, 2, 3, 4, 5, 6, 7)
print(tup1[0]) # Robert
print(tup2[1:4]) # (2, 3, 4)
打包与解包
“打包”将值放入新元组;“解包”提取回变量。
x = ('Guru99', 20, 'Education')
(company, emp, profile) = x
print(company) # Guru99
print(emp) # 20
print(profile) # Education
比较元组
比较运算符(<、>、== 等)按字典序工作:首个不同元素决定结果。
# 情况 1
a = (5, 6)
b = (1, 4)
if a > b:
print('a 更大')
else:
print('b 更大')
首元素相等则继续比较次元素,以此类推。
元组作为字典键
元组可哈希,可作字典键,列表不行。
directory = {('last', 'first'): '555-1234'}
for last, first in directory:
print(first, last, directory[(last, first)])
字典项可转为键值对元组列表:
a = {'x': 100, 'y': 200}
b = list(a.items())
print(b) # [('x', 100), ('y', 200)]
删除元组
元组不可变,无法删除单个元素。但可用 del 删除整个元组对象。
切片元组
切片语法对元组同列表:
x = ('a', 'b', 'c', 'd', 'e')
print(x[2:4]) # ('c', 'd')
元组内置函数
元组无缝配合 all()、any()、enumerate()、max()、min()、sorted()、len()、tuple() 等函数。
元组相对列表的优势
- 迭代略快,因不可变。
- 仅不可变序列可作字典键,元组符合。
- 存不可变数据用元组防意外修改。
快速总结
- 打包解包实现清晰数据传递。
- 元组支持字典序比较。
- 可作复合字典键。
- 元组不可变;用
del删整体。 - 切片高效获取子元组。
Python
- 精通Python数据类型:实战指南
- 精通Python运算符:全面指南
- 精通Python Pass语句:实战指南
- 精通Python函数参数:位置、关键字与默认参数
- 精通 Python 字典:创建、操作与进阶技巧
- 精通 Python 迭代器:工作原理与自定义构建
- Python 闭包详解:嵌套函数如何捕获变量
- 精通 Python datetime:日期、时间与时区实战指南
- 精通 Python time.sleep():最佳实践、多线程与实战案例
- Python 元组完全指南:打包、解包、比较、切片与字典键应用
- Python 字典增删改查与嵌套操作实战指南
- 精通 Python enumerate():为列表、元组、字符串、字典带索引循环