Files
python/Container/readme.md
2025-09-08 20:57:17 +08:00

98 lines
6.1 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

明白了,你想要一个**Python 内置容器list、tuple、dict、set、frozenset的方法大全**,我给你整理一份详细的参考表,包括用法、说明和示例。
---
# Python 内置容器方法大全
## 1⃣ 列表 `list`
| 方法 | 说明 | 示例 |
| ------------------------------- | ------------------ | ------------------- |
| `append(x)` | 在末尾添加元素 | `lst.append(5)` |
| `extend(iterable)` | 在末尾添加多个元素 | `lst.extend([6,7])` |
| `insert(i, x)` | 在索引 i 插入元素 | `lst.insert(1, 10)` |
| `remove(x)` | 删除第一个值为 x 的元素 | `lst.remove(5)` |
| `pop([i])` | 删除并返回索引 i 的元素,默认末尾 | `lst.pop()` |
| `clear()` | 清空列表 | `lst.clear()` |
| `index(x[, start[, end]])` | 返回 x 第一次出现的索引 | `lst.index(3)` |
| `count(x)` | 返回 x 出现次数 | `lst.count(2)` |
| `sort(key=None, reverse=False)` | 原地排序 | `lst.sort()` |
| `reverse()` | 原地反转 | `lst.reverse()` |
| `copy()` | 返回列表浅拷贝 | `lst2 = lst.copy()` |
---
## 2⃣ 元组 `tuple`
| 方法 | 说明 | 示例 |
| -------------------------- | ------------- | ---------------------- |
| `count(x)` | 返回 x 出现次数 | `(1,2,2).count(2)` → 2 |
| `index(x[, start[, end]])` | 返回 x 第一次出现的索引 | `(1,2,3).index(2)` → 1 |
> 注意tuple 是不可变类型,没有 append、remove、sort 等方法。
---
## 3⃣ 集合 `set`
| 方法 | 说明 | 示例 | |
| ----------------------------- | -------------- | --------------------------------------- | ------------------ |
| `add(x)` | 添加元素 | `s.add(5)` | |
| `update(*iterables)` | 添加多个元素 | `s.update([1,2], {3,4})` | |
| `remove(x)` | 删除元素,元素不存在会报错 | `s.remove(3)` | |
| `discard(x)` | 删除元素,元素不存在不会报错 | `s.discard(3)` | |
| `pop()` | 随机删除并返回一个元素 | `s.pop()` | |
| `clear()` | 清空集合 | `s.clear()` | |
| `copy()` | 浅拷贝 | `s2 = s.copy()` | |
| `union(*others)` | 并集 | \`s | s2`或`s.union(s2)\` |
| `intersection(*others)` | 交集 | `s & s2``s.intersection(s2)` | |
| `difference(*others)` | 差集 | `s - s2``s.difference(s2)` | |
| `symmetric_difference(other)` | 对称差 | `s ^ s2``s.symmetric_difference(s2)` | |
| `issubset(other)` | 是否为子集 | `s.issubset(s2)` | |
| `issuperset(other)` | 是否为超集 | `s.issuperset(s2)` | |
| `isdisjoint(other)` | 是否无交集 | `s.isdisjoint(s2)` | |
---
## 4⃣ 不可变集合 `frozenset`
| 方法 | 说明 | 示例 |
| -------------------------------------------------------------------------- | ---------------- | -- |
| 与 `set` 类似,但没有 `add`, `remove`, `discard`, `pop`, `clear`, `update` 等可变方法。 | | |
| `union`, `intersection`, `difference`, `symmetric_difference` 可用 | `fs1.union(fs2)` | |
---
## 5⃣ 字典 `dict`
| 方法 | 说明 | 示例 |
| ---------------------------- | --------------------------------------- | --------------------- |
| `get(key[, default])` | 返回 key 对应的值key 不存在返回 default | `d.get('a', 0)` |
| `keys()` | 返回所有键 | `d.keys()` |
| `values()` | 返回所有值 | `d.values()` |
| `items()` | 返回 (key,value) 元组列表 | `d.items()` |
| `pop(key[, default])` | 删除 key 并返回对应值 | `d.pop('a', 0)` |
| `popitem()` | 删除并返回字典中的最后一对键值 | `d.popitem()` |
| `update([other])` | 用另一个字典更新 | `d.update({'a':10})` |
| `clear()` | 清空字典 | `d.clear()` |
| `copy()` | 浅拷贝 | `d2 = d.copy()` |
| `setdefault(key[, default])` | 如果 key 不存在,则插入 key\:default 并返回 default | `d.setdefault('a',0)` |
---
## 🔹 总结
* **序列sequence** → list, tuple
* **集合set** → set, frozenset
* **映射mapping** → dict
* **可变 vs 不可变**
* list, set, dict → 可变
* tuple, frozenset → 不可变
---
如果你愿意,我可以帮你画一张 **Python 内置容器方法全景图**,把所有容器、可变/不可变、方法一目了然地展示出来,非常适合学习和查阅。
你希望我帮你画吗?