LeetCode Hot100数据结构背景知识之元组(Tuple)Python2026新版

专栏其他内容:

LeetCode Hot100 中 enumerate 函数的妙用(2026.2月版)

LeetCode Hot100数据结构背景知识之列表(List)Python2026新版

LeetCode Hot100数据结构背景知识之元组(Tuple)Python2026新版

LeetCode Hot100数据结构背景知识之集合(Set)Python2026新版

LeetCode Hot100数据结构背景知识之字典(Dictionary)Python2026新版

一、元组(tuple):不可变的有序序列

1.1 数据结构背景

元组是 Python 中不可变的有序序列 ,是用于存储多个元素的容器,用小括号 () 包裹元素(单元素元组需加逗号),元素可以是不同类型(如 int、str、甚至嵌套元组),但一旦创建,元素的个数、值、顺序均无法修改(核心区别于列表 list),只可以查询。

1.2 核心特性

  • 不可变性 :一旦创建,元素的个数、值、顺序均无法修改。刷题中常用于存储"固定不变的常量",比如表示二维坐标 (x, y)、题目中的固定边界值(如最大长度、目标阈值)。示例:coord = (1, 2),若尝试 coord[0] = 3 会直接报错。

  • 有序性 :元素按插入顺序排列,支持索引(正索引、负索引)和切片,用法与list完全一致。刷题中可快速获取有序数据的片段,比如从tuple中提取坐标的x轴:x = coord[0]

  • 可哈希、可嵌套 :tuple本身可哈希(前提是内部元素均为可哈希对象,如int、str、tuple),可作为dict的key;同时支持嵌套,比如表示三维坐标 (1, 2, (3, 4)),刷题中可用于存储复杂的固定结构数据。

1.4 tuple常用函数

tuple的函数设计贴合其"不可变"特性,无修改类函数,核心常用函数均为查询、统计类,适配LeetCode刷题中的数据处理场景,无需死记硬背,掌握4个高频函数即可:

  • len(tuple) :统计元组中元素的个数,与list的len()用法一致,刷题中常用于判断元组长度(如坐标维度、参数个数)。示例:coord = (1, 2, 3)len(coord) 返回3,可快速判断是否为三维坐标。

  • tuple.count(x) :统计元组中元素x出现的次数,刷题中可用于判断元组中是否存在重复元素(辅助去重判断)。示例:t = (1, 2, 2, 3)t.count(2) 返回2,可快速统计目标元素频次。

  • tuple.index(x, start=0, end=len(tuple)) :查找元素x在元组中的第一个索引位置,可指定查找范围(start为起始索引,end为结束索引,左闭右开),刷题中可快速定位目标元素的位置。示例:t = (1, 2, 3, 2)t.index(2) 返回1,t.index(2, 2) 返回3;若元素不存在则报错,刷题中可结合try-except规避异常。

  • sorted(tuple) :将元组转为有序列表(注意:不修改原元组,返回新列表),刷题中用于对有序但需排序的元组数据进行排序(如坐标排序、数值排序)。示例:t = (3, 1, 2)sorted(t) 返回[1, 2, 3],若需保留tuple类型,可再转为tuple:tuple(sorted(t))

补充说明:tuple无专属的转换函数,若需将其他类型转为tuple,可使用tuple(iterable)(如tuple([1,2,3]) 将列表转为元组),刷题中常用于将可变列表转为不可变元组,作为字典的key或集合的元素。

注意点

❌ 误区1:认为tuple"完全不可变"------若tuple内部包含可变元素(如list),则该可变元素可修改。例如 t = (1, [2, 3]),可执行 t[1].append(4),此时t变为 (1, [2, 3, 4])。刷题中需注意,若需完全不可变的结构,避免在tuple中嵌套list。

❌ 误区2:创建单元素tuple时遗漏逗号------t = (1) 会被解析为int类型1,正确写法是 t = (1,)(逗号是tuple的标志,而非括号)。刷题中若误写,可能导致类型错误(如将int作为dict的key)。

相关推荐
wj3055853784 小时前
课程 9:模型测试记录与 Prompt 策略
linux·人工智能·python·comfyui
吃好睡好便好5 小时前
在Matlab中绘制横直方图
开发语言·学习·算法·matlab
星寂樱易李5 小时前
iperf3 + Python-- 网络带宽、网速、网络稳定性
开发语言·网络·python
仰泳之鹅5 小时前
【C语言】自定义数据类型2——联合体与枚举
c语言·开发语言·算法
qingfeng154155 小时前
企业微信机器人开发:如何实现自动化与智能运营?
人工智能·python·机器人·自动化·企业微信
x_yeyue7 小时前
三角形数
笔记·算法·数论·组合数学
Mr. zhihao8 小时前
深入解析redis基本数据结构
数据结构·数据库·redis
彦为君8 小时前
Agent 安全:从权限提示到沙箱隔离
python·ai·ai编程
念何架构之路8 小时前
Go语言加密算法
数据结构·算法·哈希算法