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

Python 列表:从创建到切片的核心用法

Python 列表是有序可变集合,支持重复元素及混合类型。核心操作包括通过下标访问、切片提取子序列、以及 append 和 insert 增删改查。注意切片边界处理及负索引逻辑,拼接时 extend 方法优于 += 操作符。掌握列表基础是编写高效 Python 代码的前提。

漫步发布于 2026/3/23更新于 2026/5/64 浏览
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, )
(a)  
'Hello'
print
# [1, 'Jinger', 3.0, 'Hello', 2.2]

注意:如果指定的索引超出范围,insert 会自动处理。正索引过大则追加到末尾,负索引过小则插入到头部。

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)
# 结果:[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
a[3] = 4             # 修改为 4
print(a)             # [1, 3.0, 2.2, 4]

4. 遍历列表

for 循环

最简洁的遍历方式,但直接修改变量不会影响原列表:

a = [1, 3.0, 2.2, 3.0]
for item in a:
    item += 1
# 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
while 循环

适合需要精细控制索引的场景:

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

5. 切片提取

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

基本切片

左闭右开区间:

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]
省略边界
  • [:]:复制整个列表
  • [:stop]:从头到 stop
  • start::从 start 到末尾
a = [1, 3.0, 2.2, 3.0]
e = a[:]       # [1, 3.0, 2.2, 3.0]
f = a[1:]      # [3.0, 2.2, 3.0]
g = a[:2]      # [1, 3.0]
步长与负索引

支持负索引和步长,可用于反向切片:

a = [1, 3.1, 2.2, 3.0]
h = a[::-1]    # [3.0, 2.2, 3.1, 1] (反转)
i = a[3:0:-1]  # [3.0, 2.2, 3.1]
j = a[-1::-2]  # [3.0, 3.1]

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

6. 拼接列表

+ 操作符

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

a = [1, 3.1, 2.2, 3.0]
b = [2.2, 'Jinger']
c = a + b
# c: [1, 3.1, 2.2, 3.0, 2.2, 'Jinger']
+= 与 extend

两者效果相似,但 extend 性能更优:

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

原理:b += a 底层相当于 b = b + a,会创建临时列表;而 extend 直接在原列表内存中扩展,避免了额外的分配开销。

常用接口速查

功能方法/操作
子列表提取this_list[start:stop:step]
成员检查in, not in
列表拼接+, +=, .extend()
长度len()
添加.append(), .insert()
删除.pop(), .remove()
查找.index(), .count()
排序/反转.sort(), .reverse()
清空.clear()
复制.copy()

总结

列表是 Python 开发中的基石。理解其可变性、切片机制以及不同操作的性能差异,能帮助你写出更高效、健壮的代码。在实际使用中,优先使用 extend 而非 += 进行大列表合并,利用切片快速处理数据片段,并注意负索引带来的便利。

目录

  1. Python 列表基础
  2. 创建列表
  3. 1. 创建空列表
  4. 2. 创建非空列表
  5. 操作列表
  6. 1. 新增元素
  7. append 方法
  8. insert 方法
  9. 2. 删除元素
  10. pop 方法
  11. remove 方法
  12. 结果:[1, 2.2, 3.0] (仅删除第一次出现的 3.0)
  13. 3. 查找与访问
  14. in / not in 操作符
  15. index 方法
  16. 下标访问
  17. 4. 遍历列表
  18. for 循环
  19. a 仍然是 [1, 3.0, 2.2, 3.0]
  20. while 循环
  21. 5. 切片提取
  22. 基本切片
  23. 省略边界
  24. 步长与负索引
  25. 6. 拼接列表
  26. + 操作符
  27. c: [1, 3.1, 2.2, 3.0, 2.2, 'Jinger']
  28. += 与 extend
  29. b: [2.2, 'Jinger', 1, 3.1, 2.2, 3.0]
  30. 常用接口速查
  31. 总结
  • 💰 8折买阿里云服务器限时8折了解详情
  • GPT-5.5 超高智商模型1元抵1刀ChatGPT中转购买
  • 代充Chatgpt Plus/pro 帐号了解详情
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

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

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

更多推荐文章

查看全部
  • Python 可哈希数据结构的核心概念
  • Dify 工作流发布为 MCP Server 实战:第三方工具无缝对接
  • Python 格式化符号及转义字符用法详解
  • VS Code 远程连接后 GitHub Copilot 无法使用修复方案
  • Spring Cloud Sentinel 熔断降级核心原理与实战指南
  • Python+Django 城市化自习室管理系统设计与实现
  • 无人机红外图像温度校准与精度优化技术
  • Python 50 道核心面试题:从基础到高级实战解析
  • Claude Code 添加 MCP 服务器配置指南
  • PyCharm Copilot 插件 Claude 模型不可用问题修复
  • 笔记本 CPU 环境下 Faster-Whisper 模型模式选择指南
  • Proxmox VE 部署 Kali Linux 完整实战指南
  • 如何确认 Windows 下是否安装 C++ 开发工具
  • Prometheus 核心函数实战:指标处理与聚合技巧
  • 基于 LangChain 的 RAG 系统语义保留与防丢失方案
  • PCTF2025 Web 赛题实战解析:从整数溢出到 SSTI
  • PCTF2025 Web 后半部分解题复盘
  • 阿里开源 Page-Agent:一行 JS 代码实现大模型前端 DOM 操控
  • Visual C++运行库整合包部署指南
  • 2024 检索增强生成(RAG)技术综述:基础、增强与应用

相关免费在线工具

  • 加密/解密文本

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