4、元组tuple的常用方法

书诚小驿2025/03/08Python知识库Python

一、元组的创建

1、创建空元组

# 方式1:使用小括号
tuple1 = ()
print(tuple1)  # 输出: ()

# 方式2:使用tuple()
tuple2 = tuple()
print(tuple2)  # 输出: ()

2、创建非空元组

# 方式1:直接使用小括号
tuple1 = (1, 2, 3)
print(tuple1)  # 输出: (1, 2, 3)

# 方式2:使用tuple()转换其他序列
list1 = [1, 2, 3]
tuple2 = tuple(list1)
print(tuple2)  # 输出: (1, 2, 3)

# 注意:创建单元素元组,必须加逗号
single_tuple = (1,)  # 正确
print(type(single_tuple))  # 输出: <class 'tuple'>

not_tuple = (1)     # 错误!这是整数
print(type(not_tuple))  # 输出: <class 'int'>

二、元组的常用方法

1、基本操作

# 1. 计算元组长度
tuple1 = (1, 2, 3, 4, 5)
print(len(tuple1))  # 输出: 5

# 2. 索引访问
print(tuple1[0])    # 输出: 1
print(tuple1[-1])   # 输出: 5

# 3. 切片操作
print(tuple1[1:4])  # 输出: (2, 3, 4)
print(tuple1[::2])  # 输出: (1, 3, 5)

2、常用方法

# 1. count() - 统计元素出现次数
tuple1 = (1, 2, 2, 3, 2, 4)
print(tuple1.count(2))  # 输出: 3

# 2. index() - 查找元素第一次出现的索引
print(tuple1.index(2))  # 输出: 1

# 3. 多值赋值(解包)
x, y, z = (1, 2, 3)
print(x, y, z)  # 输出: 1 2 3

# 4. 部分解包
first, *rest = (1, 2, 3, 4, 5)
print(first)  # 输出: 1
print(rest)   # 输出: [2, 3, 4, 5]

三、元组的高级操作

1、元组的连接

# 1. 使用加号连接
tuple1 = (1, 2)
tuple2 = (3, 4)
result = tuple1 + tuple2
print(result)  # 输出: (1, 2, 3, 4)

# 2. 使用乘号重复
tuple3 = (1, 2) * 3
print(tuple3)  # 输出: (1, 2, 1, 2, 1, 2)

2、元组推导式

# 注意:元组没有直接的推导式语法,需要使用tuple()
tuple1 = tuple(x**2 for x in range(5))
print(tuple1)  # 输出: (0, 1, 4, 9, 16)

3、元组作为字典键

# 元组可以作为字典的键(因为元组是不可变的)
point_values = {
    (0, 0): '原点',
    (1, 0): '右侧点',
    (0, 1): '上方点'
}
print(point_values[(0, 0)])  # 输出: 原点

四、注意事项

  1. 元组的不可变性
tuple1 = (1, [2, 3], 4)
# tuple1[0] = 2  # 错误!不能修改元组元素
tuple1[1].append(5)  # 正确!可以修改元组中可变对象的内容
print(tuple1)  # 输出: (1, [2, 3, 5], 4)
  1. 元组与列表的转换
# 元组转列表
tuple1 = (1, 2, 3)
list1 = list(tuple1)
print(list1)  # 输出: [1, 2, 3]

# 列表转元组
list2 = [4, 5, 6]
tuple2 = tuple(list2)
print(tuple2)  # 输出: (4, 5, 6)
  1. 性能优势
# 元组比列表占用更少的内存
import sys
list1 = [1, 2, 3, 4, 5]
tuple1 = (1, 2, 3, 4, 5)
print(f'列表占用内存:{sys.getsizeof(list1)} 字节') # 输出: 112 字节
print(f'元组占用内存:{sys.getsizeof(tuple1)} 字节') # 输出: 88 字节