亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> Python

精通 Python 元组:创建、访问与进阶操作

Python 元组

探索 Python 元组的威力——不可变序列为异构数据提供速度、安全性和通用性。本指南从基础语法到进阶操作,助你理解何时选择元组而非列表。

视频:Python 列表与元组

元组行为类似列表,但创建后不可变。与列表不同,你无法修改其元素,使元组成为固定数据集的理想选择。


创建元组

元组通过将逗号分隔的值放入圆括号 () 定义。括号虽可选,但能提升可读性。

元组可包含任意数量项并混合数据类型——整数、浮点数、字符串、列表、其他元组等。

# 不同类型的元组
# 空元组
my_tuple = ()
print(my_tuple)
# 整数元组
my_tuple = (1, 2, 3)
print(my_tuple)
# 混合数据类型
my_tuple = (1, "Hello", 3.4)
print(my_tuple)
# 嵌套元组
my_tuple = ("mouse", [8, 4, 6], (1, 2, 3))
print(my_tuple)

输出

() (1, 2, 3) (1, 'Hello', 3.4) ('mouse', [8, 4, 6], (1, 2, 3))

元组也可不加括号创建——称为元组打包。

my_tuple = 3, 4.6, "dog"
print(my_tuple)
# 元组解包
a, b, c = my_tuple
print(a)
print(b)
print(c)

输出

(3, 4.6, 'dog') 3 4.6 dog

单元素元组需加尾随逗号,以区别于普通值。

my_tuple = ("hello")
print(type(my_tuple))  # <class 'str'>
# 单元素元组
my_tuple = ("hello",)
print(type(my_tuple))  # <class 'tuple'>
# 括号可选
my_tuple = "hello",
print(type(my_tuple))  # <class 'tuple'>

输出

<class 'str'> <class 'tuple'> <class 'tuple'>

访问元组元素

元组支持多种元素访问方法:

1. 索引

使用索引操作符 [],零基索引。越界访问引发 IndexError;非整数索引引发 TypeError。

# 索引示例
my_tuple = ('p','e','r','m','i','t')
print(my_tuple[0])  # 'p'
print(my_tuple[5])  # 't'
# 嵌套索引
n_tuple = ("mouse", [8, 4, 6], (1, 2, 3))
print(n_tuple[0][3])  # 's'
print(n_tuple[1][1])  # 4

输出

p t s 4

2. 负索引

负索引从末尾计数:-1 为最后一个元素。

# 负索引
my_tuple = ('p', 'e', 'r', 'm', 'i', 't')
print(my_tuple[-1])  # 't'
print(my_tuple[-6])  # 'p'

输出

t p

3. 切片

使用 start:stop 语法提取子元组。

# 切片示例
my_tuple = ('p','r','o','g','r','a','m','i','z')
print(my_tuple[1:4])   # ('r', 'o', 'g')
print(my_tuple[:-7])   # ('p', 'r')
print(my_tuple[7:])    # ('i', 'z')
print(my_tuple[:])     # 完整元组

输出

('r', 'o', 'g') ('p', 'r') ('i', 'z') ('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z')
精通 Python 元组:创建、访问与进阶操作

修改元组

元组不可变。直接给元素赋值引发 TypeError:

# 尝试修改
my_tuple = (4, 2, 3, [6, 5])
# my_tuple[1] = 9  # TypeError

但若元素本身可变(如列表),其内部状态可改变:

my_tuple[3][0] = 9
print(my_tuple)  # (4, 2, 3, [9, 5])

元组可整体重新赋值:

my_tuple = ('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z')
print(my_tuple)

用 + 连接,* 重复;均返回新元组。

print((1, 2, 3) + (4, 5, 6))  # (1, 2, 3, 4, 5, 6)
print(("Repeat",) * 3)        # ('Repeat', 'Repeat', 'Repeat')

输出

(1, 2, 3, 4, 5, 6) ('Repeat', 'Repeat', 'Repeat')

删除元组

无法移除单个项。可用 del 删除整个元组:

my_tuple = ('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z')
# del my_tuple[3]  # TypeError
del my_tuple
# print(my_tuple)  # NameError

输出

Traceback (most recent call last): File "<string>", line 12, in <module> NameError: name 'my_tuple' is not defined

元组方法

元组仅暴露两个内置方法:count() 和 index()。

my_tuple = ('a', 'p', 'p', 'l', 'e')
print(my_tuple.count('p'))  # 2
print(my_tuple.index('l'))  # 3

输出

2 3

其他元组操作

1. 成员测试

用 in 关键字检查存在性。

my_tuple = ('a', 'p', 'p', 'l', 'e')
print('a' in my_tuple)
print('b' in my_tuple)
print('g' not in my_tuple)

输出

True False True

2. 迭代

用 for 循环遍历元组:

for name in ('John', 'Kate'):
    print("Hello", name)

输出

Hello John Hello Kate

3. 相较列表的优势

Python

  1. 精通Python数据类型:实战指南
  2. 精通Python运算符:全面指南
  3. 精通Python Pass语句:实战指南
  4. 精通Python函数参数:位置、关键字与默认参数
  5. 精通 Python 字典:创建、操作与进阶技巧
  6. 精通 Python 迭代器:工作原理与自定义构建
  7. Python 闭包详解:嵌套函数如何捕获变量
  8. 精通 Python datetime:日期、时间与时区实战指南
  9. Python 语言概览:高级、可读、交互式与面向对象
  10. Python 数字类型详解:不可变数值数据的操作与数学函数
  11. Python 字符串完全指南:创建、访问、格式化与内置方法大全
  12. Python 元组详解:定义、使用与列表的核心区别