跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Python算法

Python 列表与元组:核心区别与常用操作详解

Python 序列类型中列表和元组是最常用的数据结构。列表可变,支持动态增删改;元组不可变,适合存储固定数据。两者均支持索引切片,但元组性能略优且可用作字典键。掌握它们的差异能提升代码效率与安全性。

观心发布于 2026/3/16更新于 2026/6/1520 浏览

基础概念:索引与切片

在深入列表和元组之前,先统一一下序列类型的访问方式。Python 使用下标索引来定位元素,索引从 0 开始计数。例如,第一个元素的索引是 0,第二个是 1。此外,Python 还支持负数索引,-1 代表最后一个元素,-2 代表倒数第二个,以此类推。

除了访问单个元素,**切片(slice)**允许我们获取序列的子集。语法为 [start:stop:step],其中 start 包含,stop 不包含,step 是步长(默认为 1)。如果索引越界,Python 会抛出 IndexError 异常。

文章配图

列表(List):灵活的可变序列

列表是 Python 中最常用的数据结构之一,用方括号 [] 定义。它是有序的、可变的,意味着我们可以随时添加、删除或修改其中的元素。列表中的元素类型可以混合,甚至可以是嵌套的列表。

常见操作

  1. 访问与修改:通过索引直接读写。
  2. 添加元素:append() 追加末尾,insert() 指定位置插入,extend() 合并列表。
  3. 删除元素:remove() 按值删除,pop() 按索引弹出并返回,del 语句直接移除。

文章配图

my_list = [10, 20, 30, 40, 50]
my_list.remove(20)       # 删除值为 20 的元素
last_element = my_list.pop()  # 弹出最后一个元素
del my_list[1]           # 删除索引 1 处的元素

文章配图

元组(Tuple):固定的有序集合

元组与列表非常相似,但关键区别在于不可变性。一旦创建,元组的内容就不能被修改。它使用圆括号 () 定义。这种特性使得元组更适合存储不需要改变的数据,比如配置项或数据库记录。

常见操作

元组支持索引访问、切片和遍历,但不支持修改、添加或删除操作。尝试修改元组元素会抛出 TypeError。

文章配图

my_tuple = (1, 2, 3)
# my_tuple[1] = 99  # 报错:'tuple' object does not support item assignment

列表与元组的核心差异

在实际开发中,选择哪种结构主要取决于数据的生命周期需求。

  1. 可变性:列表可变(mutable),元组不可变(immutable)。这是最根本的区别。
  2. 语法:列表用 [],元组用 ()。注意,单元素元组需要加逗号,如 (1,)。
  3. 性能:由于元组不可变,其内存占用更小,访问速度通常比列表稍快。

文章配图

简单来说,如果你需要频繁修改数据,选列表;如果需要保证数据不被意外篡改,或者作为字典的键,选元组。

文章配图

目录

  1. 基础概念:索引与切片
  2. 列表(List):灵活的可变序列
  3. 常见操作
  4. 元组(Tuple):固定的有序集合
  5. 常见操作
  6. my_tuple[1] = 99 # 报错:'tuple' object does not support item assignment
  7. 列表与元组的核心差异
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 大模型基础概念、架构与应用场景详解
  • 不同光照模拟下的车载 AR-HUD 颜色可见性评估
  • GLM-4.6V-Flash-WEB 多模态模型轻量化部署指南
  • LazyLLM 框架实战:构建代码专家智能体
  • 多卡部署 Qwen3-VL-32B:vLLM 死锁与 llama.cpp 实战对比
  • 使用 Python 调用大模型(LLM)的四种方法
  • 高德地图 JSAPI 加载器集成与 Key 配置指南
  • Spring WebFlux 核心概念与架构详解
  • 多卡部署 Qwen3-VL-32B:vLLM 通信瓶颈与 llama.cpp 实践
  • C++ 基于 SendInput 的键盘鼠标模拟实现
  • 基于 MAI-UI-8B 实现 Android UI 自动化:从元素定位到多步导航
  • 多卡部署 Qwen-VL 大模型:vLLM 通信瓶颈与 llama.cpp 实践
  • Node.js+Vue 在线票务系统设计与功能实现
  • Android 手机端 Python 开发指南:Termux 环境搭建与实战
  • Spring AI 核心亮点拆解与实战指南
  • Qwen3-VL-32B 多卡部署:vLLM 通信瓶颈与 llama.cpp 实践对比
  • Whisper 模型本地化部署与离线环境搭建教程
  • 多卡部署 Qwen3-VL-32B:vLLM 通信瓶颈与 llama.cpp 实践
  • Qwen2.5-VL-32B 多卡部署:vLLM 通信瓶颈与 llama.cpp 流水线并行实战
  • OpenClaw 部署网络问题排查与解决

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online