脚本专家 发表于 2026-6-18 10:00:02

Python常用添加与删除元素API详解(list/dict/set/queue/stack)

在 Python 编程中,对容器类型进行元素的添加和删除是最基础也最频繁的操作。掌握不同数据结构对应的 API,不仅能提升编码效率,还能避免因误用导致的运行时错误。本文以 list、dict、set、str、stack、queue 六种常见类型为例,整理其添加与删除元素的标准方法,并附上可直接运行的代码示例。

---

## 1. list 列表

列表支持多种添加和删除方式,适用于不同场景。

| 操作 | API | 示例 |
|------|-----|------|
| 尾部添加 | append(x) | arr.append(4) |
| 指定位置插入 | insert(i, x) | arr.insert(1, 99) |
| 添加多个元素 | extend(iterable) | arr.extend() |
| 删除最后一个 | pop() | arr.pop() |
| 删除指定下标 | pop(i) | arr.pop(0) |
| 删除指定值 | remove(x) | arr.remove(99) |
| 删除指定下标 | del arr | del arr |
| 清空 | clear() | arr.clear() |

演示代码:

arr =
arr.append(4)          #
arr.insert(1, 99)      #
arr.extend()   #
arr.pop()            # 删除最后一个元素,返回6
arr.pop(0)             # 删除下标0的元素,返回1
arr.remove(99)         # 删除第一个值为99的元素


注意:remove() 只会删除第一个匹配项,若值不存在会抛出 ValueError。

---

## 2. dict 字典

字典以键值对形式存储,添加和删除都通过键来操作。

| 操作 | API | 示例 |
|------|-----|------|
| 添加/修改 | dict = value | mp["a"] = 1 |
| 删除指定 key | pop(key) | mp.pop("a") |
| 删除指定 key | del dict | del mp["a"] |
| 安全删除(带默认值) | pop(key, 默认值) | mp.pop("x", None) |
| 清空 | clear() | mp.clear() |

演示代码:

mp = {}
mp["a"] = 1
mp["b"] = 2
mp["a"] = 100      # 修改 a 的值
mp.pop("b")          # 删除 b,返回2
mp.pop("x", None)    # x 不存在,返回 None 而不报错


使用 pop(key, default) 可以避免 KeyError,适合不确定键是否存在的场景。

---

## 3. set 集合

集合是无序不重复元素的容器,添加和删除均有“安全”版本。

| 操作 | API | 示例 |
|------|-----|------|
| 添加一个元素 | add(x) | s.add(4) |
| 添加多个元素 | update(iterable) | s.update() |
| 删除指定元素 | remove(x) | s.remove(3) |
| 安全删除 | discard(x) | s.discard(10) |
| 随机删除一个 | pop() | s.pop() |
| 清空 | clear() | s.clear() |

演示代码:

s = {1, 2, 3}
s.add(4)            # {1, 2, 3, 4}
s.update()    # {1, 2, 3, 4, 5, 6}
s.remove(3)         # 删除3,若不存在则 KeyError
s.discard(10)       # 10不存在,无操作,不报错


推荐使用 discard() 代替 remove() 以简化错误处理。

---

## 4. 字符串 str

字符串是不可变对象,不能直接增删字符,只能通过生成新字符串来间接实现。

错误示例:

s = "abc"
s = "x"   # TypeError: 'str' object does not support item assignment


正确做法:

s = "abc"
s = s + "d"          # "abcd"
s = s.replace("a", "x")# "xbcd"


字符串的“添加”实际是拼接或替换后重新赋值,原字符串未被修改。

---

## 5. 栈 stack

Python 推荐用 list 模拟栈,利用 append 入栈、pop 出栈。


stack = []
stack.append(1)   #
stack.append(2)   #
stack.pop()       # 返回2,栈变为


时间复杂度:append 和 pop 均为 O(1)。

---

## 6. 队列 queue

队列遵循先进先出, 是高效的双端队列,推荐用于队列操作。

| 操作 | API | 示例 |
|------|-----|------|
| 入队(右端) | append(x) | q.append(1) |
| 出队(左端) | popleft() | q.popleft() |

演示代码:

from collections import deque
q = deque()
q.append(1)         # deque()
q.append(2)         # deque()
q.popleft()         # 返回1,队列变为deque()


使用 deque 的 popleft() 比 list 的 pop(0) 效率更高(O(1) vs O(n))。

---

## 最常用记忆版

| 类型 | 添加 | 删除 |
|------|------|------|
| list | append() / insert() / extend() | pop() / remove() |
| dict | mp = value | pop(key) / del mp |
| set | add() / update() | discard() / remove() |
| stack | append() | pop() |
| queue | append() | popleft() |

熟练掌握这些 API 可以让你在处理 Python 数据时更加得心应手,避免低级错误。建议配合实际项目练习,加深记忆。

热心网友5 发表于 2026-6-18 11:05:00

Re: Python常用添加与删除元素API详解(list/dict/set/queue/stack)

这篇整理非常实用,把日常开发中最常用的增删操作都覆盖到了,表格和代码示例也一目了然。对于新手来说,几个关键点值得特别留意:列表的 remove 只删第一个匹配值、字典的 pop 加默认值可以避免报错、集合用 discard 更安全,还有队列用 deque 的 popleft 比 list 的 pop(0) 高效很多。感谢分享,收藏了!

热心网友5 发表于 2026-6-18 13:10:00

Re: Python常用添加与删除元素API详解(list/dict/set/queue/stack)

这个整理太实用了,尤其是 `dict` 的 `pop(key, default)` 和 `set` 的 `discard` 这两招,平时写代码经常能省掉一堆 `if key in dict` 的啰嗦判断。另外 `deque` 的 `popleft` 性能对比确实明显,之前用 `list.pop(0)` 在数据量大时卡过,后来全换成 `deque` 就丝滑多了。要是能再补个 `heapq` 的堆操作或者 `defaultdict` 的添加技巧就更完美啦,不过光这篇已经够干活用了哈哈,感谢分享!

热心网友4 发表于 2026-6-18 15:40:01

Re: Python常用添加与删除元素API详解(list/dict/set/queue/stack)

感谢楼主这么系统地整理!表格+代码示例的方式非常直观,对于我这种经常忘记具体 API 的来说太实用了。尤其 stack 用 list 模拟、queue 用 deque 的 popleft 这一点,很多新手容易直接用 list 的 pop(0) 导致性能问题,楼主特意点明 O(1) vs O(n) 很贴心。字符串不可变那段也提醒得好,经常有人想直接改字符串会报错。收藏备用,顺便推荐给刚入门 Python 的朋友。
页: [1]
查看完整版本: Python常用添加与删除元素API详解(list/dict/set/queue/stack)