Skip to content

元组

元组(Tuple)是 Python 中一种不可变的序列类型。它使用圆括号 () 来定义,元素之间用逗号 , 分隔。元组一旦创建,就不能修改其元素的值,因此它也称为“不可变序列”。

元组的创建

python
# 创建一个空元组
empty_tuple = ()

# 创建包含多个元素的元组
numbers = (1, 2, 3, 4, 5)
names = ("Alice", "Bob", "Charlie")
mixed_tuple = (1, "hello", True, 3.14)

注意: 如果元组中只有一个元素,需要在元素后面添加逗号 , 以示区别。例如:my_tuple = (1,) 表示一个包含一个元素为 1 的元组。

元组的访问

与列表类似,可以使用索引访问元组中的元素,索引从 0 开始。也可以使用负数索引访问从末尾开始的元素。

python
python
numbers = (1, 2, 3, 4, 5)

print(numbers[0])  # 输出: 1
print(numbers[2])  # 输出: 3
print(numbers[-1]) # 输出: 5

元组的不可变性

元组的元素不可修改,尝试修改元素会引发错误。

python
numbers = (1, 2, 3, 4, 5)

# numbers[0] = 10  # 会引发 TypeError 错误:'tuple' object does not support item assignment

元组的有点

  • 不可变性: 元组的不可变性保证了数据的安全性和完整性,防止意外修改。
  • 效率: 由于元组是不可变的,Python 可以对元组进行一些优化,例如更快的哈希运算,使其在某些场景下比列表效率更高。
  • 作为字典的键: 元组可以作为字典的键,因为元组是不可变的,而字典的键必须是不可变的。

元组的操作

尽管元组是不可变的,但依然可以进行一些操作:

  • 连接: 使用 + 运算符连接两个元组。
  • 重复: 使用 * 运算符重复元组。
  • 切片: 使用切片操作获取元组的子序列。
  • 其他操作: len(), max(), min(), sum(), index(), count() 等操作与列表类似。
python
numbers1 = (1, 2, 3)
numbers2 = (4, 5, 6)

print(numbers1 + numbers2)  # 输出: (1, 2, 3, 4, 5, 6)
print(numbers1 * 3)         # 输出: (1, 2, 3, 1, 2, 3, 1, 2, 3)
print(numbers1[:2])         # 输出: (1, 2)
print(len(numbers1))        # 输出: 3

元组的应用场景

  • 作为字典的键: 元组可以作为字典的键,因为元组是不可变的。
  • 返回多个值: 函数可以返回多个值,这些值会被打包成一个元组。
  • 存储不可变数据: 例如,存储日期、时间、坐标等信息。
  • 提高代码可读性: 使用元组可以提高代码的可读性,例如将相关的数据分组在一起。

总结

元组是 Python 中一种不可变的序列类型,它具有数据安全、效率高、可作为字典键等优点。在实际应用中,元组经常被用来存储不可变的数据、返回多个值以及提高代码可读性。

Released under the MIT License.