From c5100800b02911f2409d742516c10d601fb1c69b Mon Sep 17 00:00:00 2001 From: e2hang <2099307493@qq.com> Date: Mon, 8 Sep 2025 20:57:17 +0800 Subject: [PATCH] Container --- Container/readme.md | 97 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) diff --git a/Container/readme.md b/Container/readme.md index e69de29..dd1389d 100644 --- a/Container/readme.md +++ b/Container/readme.md @@ -0,0 +1,97 @@ +明白了,你想要一个**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 内置容器方法全景图**,把所有容器、可变/不可变、方法一目了然地展示出来,非常适合学习和查阅。 + +你希望我帮你画吗?