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

Python 列表核心用法与操作指南

Python 列表是有序可变集合,支持重复元素及混合类型。核心操作涵盖创建、增删改查、切片及拼接。常用方法包括 append、pop、remove、index 等,切片支持负索引与步长设置。掌握列表操作是 Python 编程的基础,实际开发中需注意 extend 与 += 的性能差异及切片边界处理。

日志猎手发布于 2026/3/21更新于 2026/6/616 浏览
Python 列表核心用法与操作指南

概述

列表(list)是 Python 中最常用的数据结构之一,它是一个有序且可变的对象。列表中允许存在重复元素,也支持混合类型的数据存储。理解列表的操作是掌握 Python 编程的基础。

创建列表

初始化列表主要有两种方式:使用方括号 [] 或内置函数 list()。

1. 创建空列表

a = []
print(type(a))  # <class 'list'>
print(a)        # []

使用 list() 函数同样可以创建一个空列表:

a = list()
print(type(a))  # <class 'list'>
print(a)        # []

2. 创建非空列表

创建时可以直接设置初始值,列表能容纳不同类型的元素:

a = [1, 3, 2.2, 'Jinger']
print(type(a))  # <class 'list'>
print(a)        # [1, 3, 2.2, 'Jinger']

操作列表

1. 新增列表元素

append 方法

append 方法用于在列表末尾追加单个元素。注意它只接受一个参数,如果传入的是列表,整个列表会被当作一个元素添加。

a = [1, 3.0, 2.2]
a.append('Jinger')
print(type(a))  # <class 'list'>
print(a)        # [1, 3.0, 2.2, 'Jinger']
insert 方法

insert 允许在指定下标位置插入元素,支持负索引。如果指定的下标超出范围,它会尝试根据正负逻辑调整插入位置。

a = [1, 3.0, 2.2]
a.insert(1, 'Jinger')
print(a)  # [1, 'Jinger', 3.0, 2.2]

a.insert(-1, 'Hello')
print(a)  # [1, 'Jinger', 3.0, 'Hello', 2.2]

注意:负索引从后往前计数,-1 代表最后一个元素。若指定下标过大(如 100),元素会追加到末尾;若为过小的负数,则可能插在首部。

2. 删除列表元素

pop 方法

pop 默认删除并返回列表末尾元素,也可指定下标删除特定位置的元素。

a = [1, 3.0, 2.2]
a.pop()     # 删除末尾,返回 2.2
print(a)    # [1, 3.0]

a.pop(1)    # 删除下标 1 的元素
print(a)    # [1]
remove 方法

remove 根据值删除元素,仅删除第一次出现的匹配项。

a = [1, 3.0, 2.2, 3.0]
a.remove(3.0)
print(a)    # [1, 2.2, 3.0]  # 第二个 3.0 保留

3. 查找列表元素

in / not in 操作符

判断元素是否存在于列表中,返回布尔值。

a = [1, 3.0, 2.2, 3.0]
print(3 in a)       # True
print(3 not in a)   # False
index 方法

获取元素首次出现的下标。

a = [1, 3.0, 2.2, 3.0]
print(a.index(2.2))  # 2
下标访问

直接使用 [] 访问元素,支持负索引。

a = [1, 3.0, 2.2, 3.0]
print(a[3])  # 3.0

4. 修改列表元素

通过下标直接赋值即可修改内容。

a = [1, 3.0, 2.2, 3.0]
a[3] = 4
print(a)  # [1, 3.0, 2.2, 4]

5. 遍历列表元素

for 循环

最自然的遍历方式,但直接修改变量不会影响原列表。

a = [1, 3.0, 2.2, 3.0]
for item in a:
    item += 1
print(item)  # 4.0
print(a)     # [1, 3.0, 2.2, 3.0]  # 原列表未变

若要修改原列表,需遍历下标:

a = [1, 3.0, 2.2, 3.0]
n = len(a)
for i in range(n):
    a[i] += 1
print(a)  # [2, 4.0, 3.2, 4.0]
while 循环

通过手动控制下标实现遍历。

a = [1, 3.0, 2.2, 3.0]
n = len(a)
i = 0
while i < n:
    a[i] += 1
    i += 1
print(a)  # [2, 4.0, 3.2, 4.0]

6. 子列表提取(切片)

切片是处理列表数据的高频操作,语法为 [start:stop:step]。

基础切片

左闭右开区间,即包含 start 不包含 stop。

a = [1, 3.0, 2.2, 3.0]
b = a[1:2]  # [3.0]
c = a[0:2]  # [1, 3.0]
d = a[0:3]  # [1, 3.0, 2.2]
边界省略

起始或结束下标可省略,默认为列表首尾。

a = [1, 3.0, 2.2, 3.0]
c = a[1:]   # [3.0, 2.2, 3.0]
d = a[:2]   # [1, 3.0]
e = a[:]    # 复制整个列表
步长设置

第三个参数控制步长,负数表示反向。

a = [1, 3.0, 2.2, 3.0]
b = a[0:3:2]  # [1, 2.2]

反向切片常用于倒序:

a = [1, 3.1, 2.2, 3.0]
b = a[::-1]   # [3.0, 2.2, 3.1, 1]
c = a[-1::-2] # [3.0, 3.1]

提示:切片越界不会报错,只会返回尽可能多的有效元素。

7. 拼接列表

+ 操作符

生成新列表,不修改原对象。

a = [1, 3.1, 2.2, 3.0]
b = [2.2, 'Jinger']
c = a + b
print(c)  # [1, 3.1, 2.2, 3.0, 2.2, 'Jinger']
+= 操作符

就地扩展,等价于 extend。

a = [1, 3.1, 2.2, 3.0]
b = [2.2, 'Jinger']
b += a
print(b)  # [2.2, 'Jinger', 1, 3.1, 2.2, 3.0]
extend 方法

推荐用于性能敏感场景,直接将另一个可迭代对象的元素加入当前列表。

a = [1, 3.1, 2.2, 3.0]
b = [2.2, 'Jinger']
b.extend(a)
print(b)  # [2.2, 'Jinger', 1, 3.1, 2.2, 3.0]

性能说明:b += a 在某些实现中可能涉及临时对象创建,而 extend 通常更高效。

常用接口速查

功能方式
子列表提取this_list[start:stop:step]
成员检查in / not in
列表拼接+ / +=
长度获取len()
方法功能
copy浅拷贝列表
clear清空所有元素
append末尾添加单元素
insert指定位置插入
extend末尾批量添加
pop删除并返回指定元素
remove删除指定值(首个)
index查找元素下标
count统计元素出现次数
reverse原地反转顺序
sort原地排序

总结

列表作为 Python 的核心容器,其灵活性和丰富的操作方法使其成为数据处理的首选工具。掌握增删改查、切片及拼接技巧,能显著提升编码效率。在实际开发中,建议优先使用 extend 而非 += 进行列表合并,并注意切片时的边界条件。

目录

  1. 概述
  2. 创建列表
  3. 1. 创建空列表
  4. 2. 创建非空列表
  5. 操作列表
  6. 1. 新增列表元素
  7. append 方法
  8. insert 方法
  9. 2. 删除列表元素
  10. pop 方法
  11. remove 方法
  12. 3. 查找列表元素
  13. in / not in 操作符
  14. index 方法
  15. 下标访问
  16. 4. 修改列表元素
  17. 5. 遍历列表元素
  18. for 循环
  19. while 循环
  20. 6. 子列表提取(切片)
  21. 基础切片
  22. 边界省略
  23. 步长设置
  24. 7. 拼接列表
  25. + 操作符
  26. += 操作符
  27. extend 方法
  28. 常用接口速查
  29. 总结
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

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

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

更多推荐文章

查看全部
  • 本地代码上传 Gitee 实战:Git 配置与推送详解
  • C++ 入门:引用、内联函数与 C++11 新特性详解
  • 网络安全行业主流证书选择指南
  • OpenArm 开源协作机器人:从技术痛点到落地实践
  • Python 核心语法详解:测试脚本开发基础
  • GESP C++ 七级真题解析:矩阵移动
  • 贪心算法核心解析:原理、策略与 C++ 实战
  • 本地离线部署大模型 Ollama+AnythingLLM
  • 使用 Claude Code 与 GLM4.7 修复前端 Bug 的踩坑实录与反思
  • Neo4j 插件 APOC 安装及配置指南
  • 无人机目标检测中的自适应图像变焦与边界框变换
  • LLM 大模型学习指南:从原理到工程化应用实战
  • 大厂 AI 人才争夺战:供需失衡下的薪资与岗位要求分析
  • WhisperLiveKit 翻译引擎深度评测:NLLB 600M vs 1.3B 速度与质量对比
  • Python 数据分析相比 Excel 的优势与入门指南
  • VS Code Copilot 完整使用教程
  • MCP 协议详解:与 Function Call 的区别及 Python SDK 使用指南
  • 2026 年国家自然科学基金申请书 AI 使用声明撰写位置指南
  • 使用 Python 将 CSV 数据导入 Neo4j 图数据库
  • LLaMA-Factory WebUI 快速上手与模型加载问题解决方案

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如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