跳到主要内容
极客日志极客日志
首页博客AI提示词GitHub精选代理工具
搜索
|注册
博客列表
Python算法

Python 列表基础与常用操作详解

综述由AI生成Python 列表是有序可变集合,支持混合类型与重复元素。涵盖列表的创建方式(空列表与非空)、核心操作(增删改查)、遍历技巧(for/while 差异)、切片机制(含负索引与步长)以及列表拼接性能对比。重点解析了 append、insert、pop、remove 等方法的实际行为与边界情况,并通过代码示例演示了常见陷阱如循环修改变量不影响原列表等问题,适合快速掌握 Python 列表基础用法。

利刃发布于 2026/3/23更新于 2026/5/47 浏览
Python 列表基础与常用操作详解

Python 列表基础与常用操作详解

在 Python 中,列表(list)是最常用的数据结构之一。它是一种有序且可变的集合,允许存储重复元素,甚至可以在同一个列表中混合不同类型的对象。理解列表的创建、操作及切片机制,是掌握 Python 编程的关键一步。

创建列表

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 方法

向列表末尾追加单个元素,注意它只接受一个参数:

a = [1, 3.0, 2.2]
a.append('Jinger')
print(a)  # [1, 3.0, 2.2, 'Jinger']
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]

# 越界处理
a.insert(100, 'End')
print(a)  # [..., 'End']

提示:负索引 -1 代表最后一个元素,-2 代表倒数第二个,以此类推。

2. 删除列表元素

pop 方法

默认删除并返回列表最后一个元素,也可指定索引删除:

a = [1, 3.0, 2.2]
a.pop()       # 删除 2.2
a.pop(1)      # 删除 3.0
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]
print(3 in a)     # False (注意 3 != 3.0)
print(3.0 in a)   # True
index 方法

获取元素首次出现的索引:

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

直接通过索引读取或修改:

a = [1, 3.0, 2.2]
print(a[0])  # 1
a[0] = 10    # 修改为 10

4. 遍历列表元素

for 循环

直接遍历元素,但修改循环变量不会改变原列表内容:

a = [1, 3.0, 2.2]
for item in a:
    item += 1  # 这里修改的是局部变量
print(a)  # [1, 3.0, 2.2] 未变

若需修改原列表,应遍历索引:

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

配合索引手动控制遍历过程:

a = [1, 3.0, 2.2]
i = 0
while i < len(a):
    a[i] += 1
    i += 1

5. 子列表提取(切片)

切片是 Python 列表最强大的功能之一,语法为 [start:stop:step]。

基本切片

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

a = [1, 3.0, 2.2, 3.0]
b = a[1:3]  # [3.0, 2.2]
c = a[:2]   # [1, 3.0]
d = a[1:]   # [3.0, 2.2, 3.0]
e = a[:]    # 复制整个列表
步长与负索引

支持负索引和步长,步长为负可实现反向切片:

a = [1, 3.1, 2.2, 3.0]
print(a[::-1])      # [3.0, 2.2, 3.1, 1]  反转
print(a[-3:-1])     # [3.0, 2.2]
print(a[::2])       # [1, 2.2]            每隔一个取一个

注意:切片操作非常安全,即使索引越界也不会报错,只会返回尽可能多的有效元素。

6. 拼接列表

使用 + 运算符

生成新列表,不修改原列表:

a = [1, 2]
b = [3, 4]
c = a + b  # [1, 2, 3, 4]
使用 += 或 extend

就地修改列表,extend 通常比 += 效率更高,因为它避免了临时对象的创建:

a = [1, 2]
b = [3, 4]
a.extend(b)  # a 变为 [1, 2, 3, 4]

常用接口汇总

作为面向对象语言,列表提供了丰富的内置方法:

方法功能
append(x)末尾添加元素
insert(i, x)指定位置插入
remove(x)删除首次出现的 x
pop([i])删除并返回指定索引元素
index(x)返回 x 的索引
count(x)统计 x 出现次数
sort()原地排序
reverse()原地反转
clear()清空列表
copy()浅拷贝列表

掌握这些基础操作,就能灵活应对大多数数据处理场景。在实际开发中,建议优先使用 extend 而非 + 进行大列表合并,并注意 remove 仅删除首条匹配项的特性,避免逻辑漏洞。

目录

  1. Python 列表基础与常用操作详解
  2. 创建列表
  3. 1. 创建空列表
  4. 2. 创建非空列表
  5. 操作列表
  6. 1. 新增列表元素
  7. append 方法
  8. insert 方法
  9. 负索引示例
  10. 越界处理
  11. 2. 删除列表元素
  12. pop 方法
  13. remove 方法
  14. 3. 查找列表元素
  15. in / not in 操作符
  16. index 方法
  17. 下标访问
  18. 4. 遍历列表元素
  19. for 循环
  20. while 循环
  21. 5. 子列表提取(切片)
  22. 基本切片
  23. 步长与负索引
  24. 6. 拼接列表
  25. 使用 + 运算符
  26. 使用 += 或 extend
  27. 常用接口汇总
  • 💰 8折买阿里云服务器限时8折了解详情
  • GPT-5.5 超高智商模型1元抵1刀ChatGPT中转购买
  • 代充Chatgpt Plus/pro 帐号了解详情
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

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

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

更多推荐文章

查看全部
  • 前端动画库选型指南:CSS、Framer Motion、GSAP 及 React Spring
  • 滑动窗口算法实战:最大连续 1 的个数 III 与将 x 减到 0 的最小操作数
  • 数据结构基础:树和二叉树
  • C++ 递归算法实战:汉诺塔问题详解
  • 前端 html2canvas 使用场景详解
  • MySQL 存储过程、游标与触发器详解
  • 解决新机型 Copilot 键替代右 Ctrl 键问题
  • 基于 SpringBoot+Vue 的网上摄影工作室系统设计与实现
  • 基于 DeepFace 与 OpenCV 的情绪分析器实现
  • 鸿蒙 APP 开发实战:网络请求与数据持久化
  • 初学者如何系统入门大语言模型(LLM):从原理到应用
  • Kafka ISR 与 AR 深度解析:副本同步机制核心概念
  • Cursor Chat Browser:管理 AI 聊天历史的 Web 工具
  • MiniMax 海螺 AI 视频:图片与文本生成高质量视频
  • Java Web 大文件分块上传与断点续传实现方案
  • ChatGPT Plus 核心功能与订阅流程说明
  • Java 线程池详解
  • C 语言多线程与并发编程:提高程序执行效率
  • Spring IoC 与依赖注入 (DI) 核心解析
  • 鸿蒙APP开发:服务联邦跨服务无缝打通

相关免费在线工具

  • 加密/解密文本

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