Python 列表操作速查:增删改查与切片技巧
在 Python 编程中,列表(list)是最常用的数据结构之一。它支持存储任意类型的元素,并且提供了丰富的操作方式。本文带你快速掌握列表的增、删、改、查以及切片技巧,方便速查和应对面试。
一、创建列表
列表使用方括号 [] 定义,可以存放不同类型的元素。
2. 创建空列表
lst = []
3. 创建带元素的列表
lst = [1, 2, 3, "python", True]
二、增(添加元素)
1. append() —— 在末尾追加
lst = [1, 2, 3]
lst.append(4)
print(lst) # [1, 2, 3, 4]
2. insert() —— 指定位置插入
lst = [1, 2, 3]
lst.insert(1, 10) # 在索引 1 插入 10
print(lst) # [1, 10, 2, 3]
3. extend() —— 扩展列表
lst = [1, 2, 3]
lst.extend([4, 5])
print(lst) # [1, 2, 3, 4, 5]
三、删(删除元素)
1. remove() —— 按值删除
lst = [1, 2, 3, 2]
lst.remove(2) # 删除第一个 2
print(lst) # [1, 3, 2]
2. pop() —— 按索引删除并返回值
lst = [1, 2, 3]
val = lst.pop(1) # 删除索引 1 的元素
print(val) # 2
print(lst) # [1, 3]
3. del —— 删除指定位置或整个列表
lst = [1, 2, 3, 4]
del lst[2] # 删除索引 2 的元素
print(lst) # [1, 2, 4]
四、改(修改元素)
lst = [10, 20, 30]
lst[1] = 200
print(lst) # [10, 200, 30]
4. 还可以利用切片一次性修改多个元素:
lst = [1, 2, 3, 4]
lst[1:3] = [20, 30]
print(lst) # [1, 20, 30, 4]
五、查(访问元素)
1. 按索引访问
lst = ["a", "b", "c"]
print(lst[0]) # a
print(lst[-1]) # c (倒数第一个)
2. 判断元素是否存在
lst = [1, 2, 3]
print(2 in lst) # True
print(5 not in lst) # True
六、切片操作
切片是 Python 列表的一大特色,支持灵活取子列表。
1. 基本切片
lst = [0, 1, 2, 3, 4, 5]
print(lst[1:4]) # [1, 2, 3]
2. 省略参数
print(lst[:3]) # [0, 1, 2] 从头开始
print(lst[3:]) # [3, 4, 5] 到末尾
print(lst[:]) # [0, 1, 2, 3, 4, 5] 全部
3. 步长切片
print(lst[::2]) # [0, 2, 4] 每隔一个取值
print(lst[::-1]) # [5, 4, 3, 2, 1, 0] 倒序
七、面试常考陷阱
1. append() vs extend()
lst = [1, 2]
lst.append([3, 4])
print(lst) # [1, 2, [3, 4]]
lst = [1, 2]
lst.extend([3, 4])
print(lst) # [1, 2, 3, 4]
区别:append 添加整个对象,extend 逐个展开添加。
2. 浅拷贝 vs 深拷贝
import copy
lst1 = [[1, 2], [3, 4]]
lst2 = lst1.copy() # 浅拷贝
lst3 = copy.deepcopy(lst1) # 深拷贝
lst1[0][0] = 99
print(lst2) # [[99, 2], [3, 4]] 受影响
print(lst3) # [[1, 2], [3, 4]] 不受影响
考点:浅拷贝只复制外层引用,深拷贝复制完整对象。
八、总结
增删改查:熟练掌握 append、insert、remove、pop 等方法。
切片操作:灵活使用 start:end:step,倒序、步长取值是面试高频考点。
面试陷阱:区分 append 和 extend,理解浅拷贝与深拷贝的差异。
👉 列表是 Python 基础中的重点,熟悉其操作不仅能提高编程效率,也是面试的必备技能。