Python 序列类型常用添加与删除元素 API 全面解析
1. list 列表的增删操作详解
在日常 Python 开发中,对列表(list)进行元素的添加、删除、修改与查询是最为普遍的场景。本文将系统梳理列表增删操作的常用 API,并附上清晰示例,方便开发者随时查阅与复用。
| 操作 | API | 示例 |
|---|---|---|
| 在尾部追加元素 | append(x) | arr.append(4) |
| 在指定位置插入 | insert(i, x) | arr.insert(1, 99) |
| 批量添加多个元素 | extend(iterable) | arr.extend([5, 6]) |
| 删除并返回末尾元素 | pop() | arr.pop() |
| 删除并返回指定下标元素 | pop(i) | arr.pop(0) |
| 删除匹配到的第一个值 | remove(x) | arr.remove(99) |
| 使用 del 语句删除指定下标 | del arr[i] | del arr[1] |
| 清空所有元素 | clear() | arr.clear() |
示例代码:

arr = [1, 2, 3] arr.append(4) # 在尾部追加元素 [1, 2, 3, 4] arr.insert(1, 99) # 在下标 1 处插入 99 [1, 99, 2, 3, 4] arr.extend([5, 6]) # 批量追加 [5, 6] [1, 99, 2, 3, 4, 5, 6] arr.pop() # 删除并返回末尾元素 arr.pop(0) # 删除并返回下标 0 的元素 arr.remove(99) # 删除第一个值为 99 的元素
2. dict 字典的键值对增删操作
字典(dict)以键值对形式存储数据,其增删逻辑非常直观,核心就是通过键来操作。值得留意的是,pop() 方法可以接收第二个参数作为默认值,当待删除的键不存在时不会抛出 KeyError,而是返回该默认值——这是提升代码健壮性的实用技巧。
| 操作 | API | 示例 |
|---|---|---|
| 添加或修改键值对 | dict[key] = value | mp["a"] = 1 |
| 删除指定 key | pop(key) | mp.pop("a") |
| 使用 del 删除指定 key | del dict[key] | del mp["a"] |
| 安全删除(带默认值) | pop(key, 默认值) | mp.pop("x", None) |
| 清空所有键值对 | clear() | mp.clear() |
示例代码:
mp = {}
mp["a"] = 1
mp["b"] = 2
mp["a"] = 100 # 修改键 "a" 的值为 100
mp.pop("b") # 删除键 "b" 及其值
mp.pop("x", None) # 键 "x" 不存在时返回 None,不会报错
3. set 集合的添加与删除操作
使用集合(set)时,需要特别关注 remove() 和 discard() 的区别:前者若要删除的元素不存在会立即抛出 KeyError,后者则会静默忽略。实际开发中,选择哪个方法取决于你是否希望程序在遇到意外数据时立即中断执行。
| 操作 | API | 示例 |
|---|---|---|
| 添加单个元素 | add(x) | s.add(4) |
| 批量添加多个元素 | update(iterable) | s.update([5, 6]) |
| 删除指定元素(不存在则报错) | remove(x) | s.remove(3) |
| 安全删除指定元素(不存在忽略) | discard(x) | s.discard(10) |
| 随机删除并返回一个元素 | pop() | s.pop() |
| 清空所有元素 | clear() | s.clear() |
示例代码:
s = {1, 2, 3}
s.add(4)
s.update([5, 6])
s.remove(3) # 元素 3 存在,正常删除;若不存在则报 KeyError
s.discard(10) # 元素 10 不存在,不会引发任何错误
4. 字符串 str 的“修改”操作(实际不可变)
字符串(str)在 Python 中是不可变类型,这意味着你不能像修改列表那样直接改变其中的某个字符。每一次看似“修改”的操作,实际上都是创建了一个全新的字符串对象。这一特性需要特别注意,尤其是在大量字符串拼接的场景下可能影响性能。
s = "abc"
s = s + "d" # 拼接后得到新字符串 "abcd"
s = s.replace("a", "x") # 替换后得到新字符串 "xbcd"
错误写法示例:
s[0] = "x" # 错误!字符串不支持原地修改
5. 栈 stack 的简洁实现
Python 官方推荐直接用列表(list)来实现栈,因为列表的 append() 和 pop() 方法在尾部操作的时间复杂度均为 O(1),完全满足栈的“后进先出”需求,代码也最为简洁直观。
| 操作 | API |
|---|---|
| 入栈(压入元素) | append(x) |
| 出栈(弹出顶部元素) | pop() |
stack = [] stack.append(1) stack.append(2) stack.pop() # 返回 2,栈变为 [1]
6. 队列 queue 的高效实现
如果使用列表来模拟队列,从头部执行 pop(0) 操作的效率非常低下,因为所有剩余元素都需要向前移动。因此在实际开发中,队列的首选实现是 collections 模块下的 deque(双端队列),它从两端进行添加/删除操作的时间复杂度均为 O(1)。
| 操作 | API |
|---|---|
| 入队(尾部添加) | append(x) |
| 出队(头部移除) | popleft() |
from collections import deque q = deque() q.append(1) q.append(2) q.popleft() # 返回 1,队列变为 deque([2])
最常用记忆版:Python 添加与删除 API 速查表
最后,将最核心、最常用的添加与删除 API 浓缩为一张速查表。编写代码时如果忘记了具体方法,直接翻阅本页即可快速找到答案。
| 数据类型 | 添加方法 | 删除方法 |
|---|---|---|
list | append() / insert() / extend() | pop() / remove() |
dict | mp[key] = value | pop(key) / del mp[key] |
set | add() / update() | discard() / remove() |
stack(基于 list) | append() | pop() |
queue(基于 deque) | append() | popleft() |
