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

Python 列表:创建、操作与切片详解

Python 列表是有序可变集合,支持混合类型与重复元素。核心操作涵盖 append 与 insert 添加元素,pop 与 remove 删除指定项,以及切片语法高效提取子序列。遍历可通过 for 或 while 循环实现,拼接推荐使用 extend 优化性能。理解负索引与切片步长机制对数据处理至关重要。

奶糖兔发布于 2026/3/25更新于 2026/7/1535 浏览
Python 列表:创建、操作与切片详解

Python 列表基础

列表(list)是 Python 中最常用的数据结构之一,它是一种有序且可变的集合。列表中允许存在重复元素,也支持混合数据类型。

创建列表

空列表

在 Python 中,使用方括号 [] 或 list() 函数均可创建空列表。

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

非空列表

初始化时可直接设置初始值,列表会自动推断类型。

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

列表操作

新增元素

append 方法

append 用于在列表末尾追加单个元素。注意它只接受一个参数,如果是多个元素需先打包成列表。

lst = [1, 3.0, 2.2]
lst.append('Jinger')
print(lst)  # [1, 3.0, 2.2, 'Jinger']
insert 方法

insert(index, element) 可在指定索引位置插入元素,支持负索引。若索引超出范围,则根据正负逻辑处理:正索引过大插末尾,负索引过小插首部。

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

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

# 越界示例
lst.insert(100, 'End')
print(lst)  # [..., 'End']

提示:负索引从后往前计数,-1 代表最后一个元素。理解这一点能避免很多边界错误。

删除元素

pop 方法

pop() 默认移除并返回列表末尾元素,也可指定索引删除任意位置元素。

lst = [1, 3.0, 2.2]
val = lst.pop()     # 移除 2.2
print(lst)          # [1, 3.0]

val = lst.pop(1)    # 移除 3.0
print(lst)          # [1]
remove 方法

remove(value) 删除第一个匹配的元素。若列表中有重复值,仅删除首次出现项。

lst = [1, 3.0, 2.2, 3.0]
lst.remove(3.0)
print(lst)  # [1, 2.2, 3.0]

查找与修改

in / not in 操作符

判断元素是否存在,返回布尔值。

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

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

lst = [1, 3.0, 2.2, 3.0]
print(lst.index(2.2))  # 2
下标访问与修改

通过 [] 可直接读取或修改元素,同样支持负索引。

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

lst[3] = 4      # 修改为整数
print(lst)      # [1, 3.0, 2.2, 4]

遍历列表

for 循环

直接遍历元素时,修改循环变量不会影响原列表,因为变量只是值的副本。

lst = [1, 3.0, 2.2, 3.0]
for item in lst:
    item += 1
print(lst)  # [1, 3.0, 2.2, 3.0] (未改变)

若要修改原列表,需遍历索引或使用 enumerate。

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

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

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

切片提取

切片语法 [start:stop:step] 非常强大,遵循左闭右开原则。

基础切片
lst = [1, 3.0, 2.2, 3.0]
print(lst[1:2])   # [3.0]
print(lst[0:2])   # [1, 3.0]
省略边界

省略 start 默认为开头,省略 stop 默认为结尾。

lst = [1, 3.0, 2.2, 3.0]
print(lst[1:])    # [3.0, 2.2, 3.0]
print(lst[:2])    # [1, 3.0]
print(lst[:])     # 完整复制
步长与负索引

步长 step 可为负数,实现反向切片。

lst = [1, 3.1, 2.2, 3.0]
print(lst[::-1])      # 反转:[3.0, 2.2, 3.1, 1]
print(lst[3:0:-1])    # [3.0, 2.2, 3.1]
print(lst[-1::-2])    # [3.0, 3.1]

注意:切片不会抛出索引越界异常,而是尽可能返回有效部分。

lst = [1, 3.0, 2.2, 3.0]
print(lst[2:100])     # [2.2, 3.0]

列表拼接

+ 与 +=

+ 生成新列表,+= 就地修改。

a = [1, 3.1]
b = [2.2, 'Jinger']
c = a + b           # 新列表
print(c)            # [1, 3.1, 2.2, 'Jinger']

b += a              # 原地扩展
print(b)            # [2.2, 'Jinger', 1, 3.1]
extend 方法

extend 将可迭代对象内容逐个加入,性能优于 +=,因为它避免了临时对象的创建。

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

常用接口速查

功能方式
子列表提取this_list[start:stop:step]
成员检查in / not in
列表拼接+ / +=
长度获取len()

核心成员函数

方法功能说明
copy浅拷贝列表
clear清空所有元素
append末尾添加单元素
insert指定位置插入
extend批量追加可迭代对象
pop弹出末尾或指定索引元素
remove删除首个匹配元素
index查找元素首次索引
count统计元素出现次数
reverse原地反转顺序
sort原地排序

总结

掌握列表的创建、增删改查及切片技巧是 Python 编程的基础。在实际开发中,优先使用 extend 进行拼接以提升性能,利用切片快速截取数据段,并注意负索引与可变性的细节,能有效减少常见 Bug。

目录

  1. Python 列表基础
  2. 创建列表
  3. 空列表
  4. 非空列表
  5. 列表操作
  6. 新增元素
  7. append 方法
  8. insert 方法
  9. 越界示例
  10. 删除元素
  11. pop 方法
  12. remove 方法
  13. 查找与修改
  14. in / not in 操作符
  15. index 方法
  16. 下标访问与修改
  17. 遍历列表
  18. for 循环
  19. while 循环
  20. 切片提取
  21. 基础切片
  22. 省略边界
  23. 步长与负索引
  24. 列表拼接
  25. + 与 +=
  26. extend 方法
  27. 常用接口速查
  28. 核心成员函数
  29. 总结
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

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

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

更多推荐文章

查看全部
  • 基于 Ant Design Vue 4.x 的然然管理系统前端架构实践
  • 规则引擎详解:概念、作用、场景、痛点与主流开源方案对比
  • VSCode 禁用 Copilot 代码自动补全
  • 李飞飞最新论文:我们需要什么样的 AI Agent
  • 融合手术导板与增强现实的椎弓根螺钉置入技术验证
  • 贪心算法实战:300.最长递增子序列
  • F5 刷新后,浏览器前端究竟发生了什么?
  • 自然语言处理在客户服务领域的实战应用
  • 前端登录页实现记住密码功能的最佳实践
  • Spring AI 系列:AI 大模型原理与平台接入
  • 基于 WebRTC 与 AI 的智能远程控制解决方案
  • FPGA 模块助力现代工厂高速数据采集与实时处理
  • Android 开发入门:Kotlin 与 Java 如何选择
  • 预训练语言模型与 BERT 实战应用
  • Go 语言实现 Graham Scan 凸包算法详解与源码
  • 大表数据高效切片:基于主键的无排序 WHERE 条件生成算法
  • Python 异步爬虫与 K8S 弹性伸缩:构建高并发数据采集引擎
  • Python 基础语法入门(一)
  • Java 核心面试知识点梳理与实战解析
  • 文心一言开源版测评:能力、易用性与价值解析

相关免费在线工具

  • 加密/解密文本

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