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)。

相关推荐
qq_408606861 分钟前
确界的倒数性质证明
学习·算法
小蒋观天下7 分钟前
【安防AI工程实战二】AI摄像头帧率抖动根治:ISP曝光时序与AI推理时序冲突深度定位
人工智能·深度学习·算法·安全·机器学习·ai大模型
打工仔折腾 AI11 分钟前
鸿蒙平板远控电脑实测:ToDesk蓝牙键鼠、双模式鼠标与跨端剪贴板落地记录
人工智能·后端·python·性能优化·计算机外设·电脑·harmonyos
Metaphor69214 分钟前
Python 实用技巧:从零自主生成结构化 PDF 页面
python·pdf
云和数据.ChenGuang18 分钟前
trace 是RAG检索链路的**全链路追踪日志对象
人工智能·深度学习·算法·排序算法
Evand J21 分钟前
【PMSM例程6】永磁同步电机(PMSM)基于增广EKF的d-q轴电感分阶段辨识算法|电机参数估计与误差分析
算法·matlab·电机·ekf
垆边人似月.22 分钟前
华为题:最多可以参加的会议数目
数据结构·c++·算法
Tongzhi202622 分钟前
2026 年考勤行业趋势:考勤正在从“打卡工具“变成“人力成本中枢“
大数据·数据结构·数据仓库·科技·数据库开发
打工仔折腾 AI23 分钟前
鸿蒙端ToDesk远控电脑实测:蓝牙键鼠、双模式鼠标与跨端剪贴板实践
后端·python·性能优化·计算机外设·电脑·harmonyos·ai agent 实战
Matlab程序猿25 分钟前
【MATLAB源码-第460期】基于matlab的OTFS通信系统SLM峰均比抑制及非线性功率放大器失真与误码性能仿真
开发语言·算法·matlab·slm·otfs