当前位置:首页>python>从零开始学python-元组

从零开始学python-元组

  • 2026-08-25 12:40:09
从零开始学python-元组

Hi~新朋友,记得点上面蓝字(网虫root)关注哟~

前言:

   主要分享的是Python版本为Python3的内容。

元组是Python中一种不可变、有序的序列类型,用圆括号 () 表示。因其不可变特性,在需要数据安全、哈希操作或性能优化的场景中具有独特价值。

1. 元组的基本概念

元组是一种不可变序列,一旦创建就不能修改其内容。这使得元组在某些场景下比列表更加安全高效。

💡语法示例

创建元组的基本语法:tuple1 = ()  # 空元组tuple2 = (1, 2, 3)  # 包含三个整数的元组tuple3 = 1, 2, 3  # 也可以不使用括号(逗号是关键)tuple4 = (1,)  # 单个元素的元组(注意逗号)not_a_tuple = (1)  # 这不是元组,只是整数1

2. 创建元组的不同方法

2.1 直接创建

语法:使用圆括号包含元素,元素间用逗号分隔fruits = ('apple', 'banana', 'cherry')numbers = (1, 2, 3, 4, 5)mixed = (1, 'hello', 3.14, True)

2.2 使用tuple()构造函数

语法:tuple(iterable)list_to_tuple = tuple([1, 2, 3])  # (1, 2, 3)string_to_tuple = tuple('Python')  # ('P', 'y', 't', 'h', 'o', 'n')range_to_tuple = tuple(range(5))  # (0, 1, 2, 3, 4)

3. 访问元组元素

元组支持索引和切片操作,语法与列表相同。

🚀索引关系:

fruits = ('apple', 'banana', 'cherry', 'date', 'elderberry')"""正向索引:     0       1        2        3       4         ['apple','banana','cherry','date','elderberry']反向索引:    -5      -4       -3       -2      -1"""

3.1 索引访问

语法:tuple[index]colors = ('red', 'green', 'blue', 'yellow', 'purple')print(colors[0])  # 'red'print(colors[-1])  # 'purple'(负数索引从末尾开始)

3.2 切片操作

语法:tuple[start:end:step]numbers = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)print(numbers[2:5])  # (2, 3, 4)  # 包含起始索引,不包含结束索引print(numbers[:3])  # (0, 1, 2)   # 从头开始print(numbers[6:])  # (6, 7, 8, 9)  # 到末尾结束print(numbers[::2])  # (0, 2, 4, 6, 8)  # 步长为2print(numbers[::-1])  # (9, 8, 7, 6, 5, 4, 3, 2, 1, 0)  # 反转元组

4. 元组的不可变性与操作

虽然元组本身不可变,但可以对其执行某些操作生成新的元组。

4.1 连接元组

语法:tuple1 + tuple2tuple1 = (1, 2, 3)tuple2 = (4, 5, 6)combined = tuple1 + tuple2  # (1, 2, 3, 4, 5, 6)

4.2 重复元组

语法:tuple * nbase_tuple = ('a', 'b')repeated = base_tuple * 3  # ('a', 'b', 'a', 'b', 'a', 'b')

4.3 元组长度

语法:len(tuple)dimensions = (1920, 1080)print(len(dimensions))  # 2

4.4. 删除元组操作

虽然元组是不可变的,不能删除单个元素,但可以删除整个元组对象。

🧪删除整个元组

语法:del tuple_namedata = ('apple', 'banana', 'cherry')print(f"元组内容: {data}")  # 元组内容: ('apple', 'banana', 'cherry')print(f"元组ID: {id(data)}")  # 显示元组的内存地址删除元组del data尝试访问已删除的元组会引发错误print(data)  # NameError: name 'data' is not defined

5. 元组方法

由于元组不可变,它的方法比列表少,主要用于查询。

5.1 count()方法

语法:tuple.count(value) - 返回指定值在元组中出现的次数numbers = (1, 2, 3, 2, 4, 2, 5)print(numbers.count(2))  # 3print(numbers.count(7))  # 0

5.2 index()方法

语法:tuple.index(value[, start[, end]]) - 返回第一个匹配值的索引fruits = ('apple', 'banana', 'cherry', 'banana', 'date')print(fruits.index('banana'))  # 1print(fruits.index('banana', 2))  # 3(从索引2开始搜索)

6. 元组解包

元组解包是Python中一个强大且常用的特性。

6.1 基本解包

语法:var1, var2, ..., varn = tuplecoordinates = (10, 20, 30)x, y, z = coordinatesprint(f"x: {x}, y: {y}, z: {z}")  # x: 10, y: 20, z: 30

6.2 使用星号(*)解包

语法:var1, *vars, varn = tuplenumbers = (1, 2, 3, 4, 5)first, *middle, last = numbersprint(first)  # 1print(middle)  # [2, 3, 4]  # 注意:中间部分解包为列表print(last)  # 5忽略某些元素:_, second, *_, last = (1, 2, 3, 4, 5, 6, 7)print(second)  # 2print(last)  # 7

7. 元组与列表的比较

8、避坑指南(高频误区)

误区
正确做法
原因
t = (1)t = (1,)
无逗号时为整数,非元组
修改元组元素
重建新元组
元组本身不可变
用列表作字典键
改用元组
列表不可哈希
忽略嵌套可变对象
明确内部可变性
元组“浅不可变”

9、总结

  • ✅ 何时用元组:数据固定、需哈希、强调安全性、函数多返回值
  • ✅ 何时用列表:需增删改查、动态变化的数据集合
  • 💡 黄金法则:若数据创建后不再变化,优先考虑元组——更安全、更高效、语义更清晰

【微语】勇气不是不害怕,而是害怕仍前行。

网虫root

期待你的

分享

点赞

在看

最新文章

随机文章