Python元组常用操作方法

元组是Python中不可变的有序序列,与列表类似但创建后不能修改。以下是元组的常用操作方法:

1. 创建元组

python 复制代码
# 空元组
empty_tuple = ()

# 单元素元组(注意逗号)
single_tuple = (1,)  # 必须有逗号,否则不是元组

# 多元素元组
my_tuple = (1, 2, 3, 'a', 'b')
print(my_tuple)
# (1, 2, 3, 'a', 'b')

another_tuple = tuple([1, 2, 3])  # 从列表转换
print(another_tuple)
# (1, 2, 3)

2. 基本操作

python 复制代码
t = (1, 2, 3, 4, 5)

# 索引访问
print(t[0])  # 输出: 1

# 切片操作
print(t[1:3])  # 输出: (2, 3)

# 长度
print(len(t))  # 输出: 5

# 连接元组
new_t = t + (6, 7)
print(new_t)  # 输出: (1, 2, 3, 4, 5, 6, 7)

# 重复元组
repeat_t = t * 2
print(repeat_t)  # 输出: (1, 2, 3, 4, 5, 1, 2, 3, 4, 5)

3. 元组方法

由于元组不可变,方法较少:

python 复制代码
t = (1, 2, 2, 3, 4)

# count() - 统计元素出现次数
print(t.count(2))  # 输出: 2

# index() - 返回元素第一次出现的索引
print(t.index(3))  # 输出: 3

4. 元组解包

python 复制代码
# 基本解包
a, b, c = (1, 2, 3)
print(a, b, c)  # 输出: 1 2 3

# 使用*收集剩余元素
first, *middle, last = (1, 2, 3, 4, 5)
print(first)    # 输出: 1
print(middle)   # 输出: [2, 3, 4]
print(last)     # 输出: 5

5. 元组转换

python 复制代码
# 列表转元组
arr = [1, 2, 3]
t = tuple(arr)
print(t) # (1, 2, 3)

# 元组转列表
new_list = list(t)
print(new_list) # [1, 2, 3]

6. 遍历元组

python 复制代码
t = (1, 2, 3, 4)

# 直接遍历
for item in t:
    print(item) # 1,2,3,4

# 带索引遍历
for index, value in enumerate(t):
    print(f"Index: {index}, Value: {value}")
    # Index: 0, Value: 1
    # Index: 1, Value: 2
    # Index: 2, Value: 3
    # Index: 3, Value: 4

7. 元组作为字典键

由于元组不可变,可以作为字典的键:

python 复制代码
locations = {
    (35.6895, 39.6917): "Tokyo",
    (40.7128, 74.0060): "New York"
}

8. 不可变性说明

元组一旦创建,不能修改其内容:

python 复制代码
t = (1, 2, 3)
# t[0] = 10  # 会引发TypeError

但若元组包含可变对象(如列表),这些可变对象可以修改:

python 复制代码
t = (1, [2, 3], 4)
t[1].append(5)  # 可以,因为修改的是列表
print(t)  # 输出: (1, [2, 3, 5], 4)

元组的不可变性使其适合用作字典键或在需要保证数据不被修改的场景中使用。

相关推荐
小仙女的小稀罕20 分钟前
听不清重要会议录音急疯?这款常见AI工具听脑AI精准转译
开发语言·人工智能·python
书到用时方恨少!26 分钟前
Python random 模块使用指南:从入门到精通
开发语言·python
第一程序员30 分钟前
Python 4.0正式发布:新特性与学习建议
python·github
IAUTOMOBILE1 小时前
用Python批量处理Excel和CSV文件
jvm·数据库·python
威联通安全存储1 小时前
破除“重前端、轻底层”的数字幻象:如何夯实工业数据的物理底座
前端·python
Amour恋空1 小时前
Java多线程
java·开发语言·python
小陈工1 小时前
2026年3月28日技术资讯洞察:5G-A边缘计算落地、低延迟AI推理革命与工业智造新范式
开发语言·人工智能·后端·python·5g·安全·边缘计算
智算菩萨2 小时前
【OpenGL】10 完整游戏开发实战:基于OpenGL的2D/3D游戏框架、物理引擎集成与AI辅助编程指南
人工智能·python·游戏·3d·矩阵·pygame·opengl
jason成都3 小时前
IoT 设备监控系统实战:基于 EMQX 的 MQTT 连接监控与数据格式指纹识别
开发语言·python
愤豆3 小时前
05-Java语言核心-语法特性--模块化系统详解
java·开发语言·python