列表(List)是 Python 中最常用、最重要、最基础的数据结构,没有之一。它就像一个万能收纳盒,可以存放任意类型的数据(数字、文字、列表、字典等),支持增、删、改、查所有操作,是编程必备的核心工具。
本教程从零开始,用最简单的语言 + 可直接运行的代码,带你全面掌握 Python 列表,涵盖基础语法、常用操作、实战技巧、避坑指南,新手也能轻松学会。
一、列表是什么?
- 定义
列表是有序、可变、可重复的集合,用方括号 [] 表示,元素之间用逗号分隔。
有序:元素有固定顺序,可通过位置(索引)获取;
可变:可随时添加、删除、修改元素;
可重复:允许存放相同值的元素。 - 为什么要用列表?
统一管理多个数据(如学生名单、商品列表、成绩数据);
支持灵活操作,适配绝大多数数据存储场景;
语法简单,易学易用,是 Python 入门必学数据结构。 - 快速示例
python
运行空列表
empty_list = []
存储不同类型数据:数字、字符串、布尔值
mix_list = [10, "Python", True, 3.14]
存储列表(嵌套列表)
nest_list = [[1,2], [3,4], [5,6]]
二、列表基础操作(必学核心)
- 创建列表
直接用方括号包裹元素即可,语法最简单:
python
运行数字列表
nums = [1, 2, 3, 4, 5]
字符串列表
names = ["小明", "小红", "小刚"]
混合列表
data = [100, "测试", False, [1,2]]
- 访问元素(查)
列表是有序的,每个元素对应一个索引(从 0 开始编号),通过索引可直接获取元素。
python
运行
fruits = ["苹果", "香蕉", "橙子", "葡萄"]
获取第1个元素(索引0)
print(fruits[0]) # 输出:苹果
获取第3个元素(索引2)
print(fruits[2]) # 输出:橙子
负索引:倒数第1个(-1)、倒数第2个(-2)
print(fruits[-1]) # 输出:葡萄
- 修改元素(改)
列表是可变的,直接通过索引赋值即可修改元素:
python
运行
fruits = ["苹果", "香蕉", "橙子"]
fruits[1] = "芒果" # 把索引1的元素改为芒果
print(fruits) # 输出:['苹果', '芒果', '橙子'] - 切片:截取子列表
用 [起始索引:结束索引] 截取一部分元素,包含起始,不包含结束:
python
运行
nums = [0,1,2,3,4,5,6]
索引1到4(不含4)
print(nums[1:4]) # [1,2,3]
从头开始到索引3
print(nums[:3]) # [0,1,2]
从索引3到末尾
print(nums[3:]) # [3,4,5,6]
步长为2,隔一个取一个
print(nums[::2]) # [0,2,4,6]
三、列表高级操作:增、删、排序、统计
这部分是列表最常用功能,工作中高频使用。
- 添加元素(增)
3 种常用添加方式,适配不同场景:
python
运行
fruits = ["苹果", "香蕉"]
1. append():末尾添加1个元素
fruits.append("橙子")
print(fruits) # ['苹果', '香蕉', '橙子']
2. extend():末尾添加多个元素
fruits.extend(["葡萄", "芒果"])
print(fruits) # ['苹果', '香蕉', '橙子', '葡萄', '芒果']
3. insert():指定位置插入元素(索引,值)
fruits.insert(1, "西瓜")
print(fruits) # ['苹果', '西瓜', '香蕉', '橙子', '葡萄', '芒果']
- 删除元素(删)
4 种删除方式,按需选择:
python
运行
fruits = ["苹果", "香蕉", "橙子", "葡萄", "香蕉"]
1. del:按索引删除
del fruits[1]
print(fruits) # ['苹果', '橙子', '葡萄', '香蕉']
2. pop():按索引删除(默认删最后一个),并返回被删元素
last = fruits.pop()
print(last) # 香蕉
print(fruits) # ['苹果', '橙子', '葡萄']
3. remove():按值删除(删除第一个匹配项)
fruits.remove("橙子")
print(fruits) # ['苹果', '葡萄']
4. clear():清空列表
fruits.clear()
print(fruits) # []
- 排序与反转
python
运行
nums = [3,1,4,2,5]
1. sort():原地升序排序
nums.sort()
print(nums) # [1,2,3,4,5]
2. sort(reverse=True):原地降序排序
nums.sort(reverse=True)
print(nums) # [5,4,3,2,1]
3. reverse():反转列表
nums.reverse()
print(nums) # [1,2,3,4,5]
- 统计与查找
python
运行
nums = [1,2,3,2,2,4]
1. len():获取元素个数
print(len(nums)) # 6
2. count():统计元素出现次数
print(nums.count(2)) # 3
3. index():查找元素第一次出现的索引
print(nums.index(2)) # 1
4. in:判断元素是否存在
print(3 in nums) # True
print(6 in nums) # False
四、列表遍历:循环读取所有元素
列表最常用的操作就是遍历,用 for 循环轻松实现:
python
运行
fruits = ["苹果", "香蕉", "橙子"]
方式1:直接遍历元素(最简单)
for fruit in fruits:
print("我喜欢:", fruit)
方式2:遍历索引+元素(需要位置时用)
for i, fruit in enumerate(fruits):
print(f"索引{i}:{fruit}")
五、列表推导式:一行代码生成列表
列表推导式是 Python 简洁高效的语法,一行代码完成循环 + 判断,新手必学。
- 基础用法
python
运行生成 0-4 的列表
nums = [i for i in range(5)]
print(nums) # [0,1,2,3,4]
生成 0-10 的偶数列表
even_nums = [i for i in range(11) if i % 2 == 0]
print(even_nums) # [0,2,4,6,8,10]
- 实用场景
python
运行把所有名字转为大写
names = ["tom", "jerry", "alice"]
upper_names = [name.upper() for name in names]
print(upper_names) # ['TOM', 'JERRY', 'ALICE']
六、嵌套列表:列表里放列表
列表支持多层嵌套,适合存储表格、矩阵等复杂数据:
python
运行3行2列的矩阵
matrix = [[1,2], [3,4], [5,6]]
获取第2行第1列元素
print(matrix[1][0]) # 3
遍历嵌套列表
for row in matrix:
for num in row:
print(num, end=" ")
print()
七、列表常用函数总结
表格
函数 / 方法 功能
len(list) 获取列表长度
list.append(x) 末尾添加元素
list.insert(i,x) 指定位置插入
list.remove(x) 删除第一个匹配值
list.pop(i) 按索引删除
list.clear() 清空列表
list.sort() 排序
list.reverse() 反转
list.count(x) 统计元素次数
list.index(x) 查找元素索引
八、新手避坑指南(必看)
索引越界报错:访问不存在的索引会崩溃,如列表有 3 个元素,却访问 list[5];
remove () 删不存在的元素:会直接报错,先用 in 判断是否存在;
循环时删除元素:会导致漏删、报错,建议倒序遍历或新建列表;
列表赋值是引用:a = [1,2],b = a,修改 b 会同时修改 a,复制用 b = a.copy();
不要用列表做固定数据:不可变数据用元组 (),列表是可变的。
九、总结
Python 列表是编程的基础核心,掌握它就能处理 80% 的日常数据任务:
语法:用 [] 创建,有序、可变、可重复;
核心操作:增(append/insert)、删(del/pop)、改、查、遍历、排序;
高级技巧:切片、列表推导式、嵌套列表;
适用场景:存储任意有序数据,是 Python 最万能的数据结构。
把本教程的代码亲手运行一遍,你就能完全掌握 Python 列表,轻松应对后续编程学习!
参考:http://www.dnuhf.cn