集合常用的操作方法有哪些?

集合常用的操作方法有哪些?

你想了解 Python 集合(set)的常用操作方法,我会按功能分类整理这些核心方法,并结合示例说明用法,让你能快速掌握各类操作的适用场景。

一、元素添加方法

这类方法用于向集合中新增元素,核心是保证元素唯一性(自动去重)。

方法

作用

示例

add()

添加单个不可变元素,元素已存在则无操作

```python

fruits = {"apple", "banana"}fruits.add("cherry") # {'apple', 'banana', 'cherry'}fruits.add("apple") # 无变化(去重)| | `update()` | 添加**多个**元素(接收可迭代对象:列表、元组、字符串等),自动去重 |pythonfruits.update(["orange", "grape"]) # 添加列表fruits.update(("pear", "apple")) # 添加元组(apple 去重)

结果:{'apple', 'banana', 'cherry', 'orange', 'grape', 'pear'}

``` |

二、元素删除方法

这类方法用于移除集合中的元素,重点注意「元素不存在时是否报错」的区别。

方法

作用

注意事项

示例

remove()

删除指定元素

元素不存在会抛出 KeyError

```python

fruits = {"apple", "banana"}fruits.remove("banana") # 成功删除

fruits.remove("orange") # 报错:KeyError: 'orange'

| | `discard()` | 删除指定元素 | 元素不存在也**不会报错**(推荐优先使用) |pythonfruits.discard("apple") # 成功删除fruits.discard("orange") # 无操作,不报错| | `pop()` | 随机删除并返回一个元素 | 集合无序,无法预测删除哪个;空集合调用会报错 |pythonnums = {1, 2, 3}removed = nums.pop() # 随机返回 1/2/3 中的一个print(nums) # 剩余两个元素| | `clear()` | 清空集合所有元素,变为空集合 | - |pythonnums.clear() # nums 变为 set()``` |

三、集合运算方法

这类方法对应数学中的集合操作(并集、交集、差集等),分为「返回新集合」和「原地修改集合」两类。

1. 返回新集合(不修改原集合)

方法

等价运算符

作用

示例

union()

`

`

求两个集合的并集(所有元素,去重)

```python

a = {1,2,3}; b = {3,4,5}print(a.union(b)) # {1,2,3,4,5}print(a | b) # 等价写法| | `intersection()` | `&` | 求两个集合的**交集**(共同元素) |pythonprint(a.intersection(b)) # {3}print(a & b) # 等价写法| | `difference()` | `-` | 求**差集**(属于a但不属于b的元素) |pythonprint(a.difference(b)) # {1,2}print(a - b) # 等价写法| | `symmetric_difference()` | `^` | 求**对称差集**(只在一个集合中出现的元素) |pythonprint(a.symmetric_difference(b)) # {1,2,4,5}print(a ^ b) # 等价写法``` |

2. 原地修改集合(直接修改原集合,无返回值)

方法

作用

示例

intersection_update()

原地保留交集,修改原集合

```python

a = {1,2,3}; b = {3,4,5}a.intersection_update(b)print(a) # {3}(原a被修改)| | `difference_update()` | 原地保留差集,修改原集合 |pythona = {1,2,3}; b = {3,4,5}a.difference_update(b)print(a) # {1,2}(原a被修改)| | `symmetric_difference_update()` | 原地保留对称差集,修改原集合 |pythona = {1,2,3}; b = {3,4,5}a.symmetric_difference_update(b)print(a) # {1,2,4,5}(原a被修改)``` |

四、集合关系判断方法

用于判断两个集合的包含、相交关系。

方法

等价运算符

作用

示例

issubset()

<=

判断当前集合是否是另一个集合的子集

```python

a = {2,3}; b = {1,2,3,4}print(a.issubset(b)) # True(a的所有元素都在b中)print(a <= b) # 等价写法| | `issuperset()` | `>=` | 判断当前集合是否是另一个集合的**超集** |pythonprint(b.issuperset(a)) # True(b包含a的所有元素)print(b >= a) # 等价写法| | `isdisjoint()` | - | 判断两个集合是否**无交集**(没有共同元素) |pythonc = {5,6}print(a.isdisjoint(c)) # True(a和c无共同元素)print(a.isdisjoint(b)) # False(有交集)``` |

五、其他常用操作

方法/函数

作用

示例

copy()

浅拷贝集合,生成新集合

```python

a = {1,2,3}; b = a.copy()b.add(4) # a 仍为 {1,2,3},b 为 {1,2,3,4}| | `len()` | 获取集合元素个数 |pythonprint(len({1,2,3})) # 3| | `in`/`not in` | 判断元素是否在集合中(效率远高于列表) |pythonprint(2 in {1,2,3}) # Trueprint(4 not in {1,2,3}) # True``` |

总结

添加元素:add()(单个)、update()(多个);

删除元素:优先用 discard()(不报错),明确元素存在时用 remove(),随机删除用 pop();

集合运算:并集(union()/|)、交集(intersection()/&)是最常用的两类运算;

核心特性:集合自动去重、查找效率高,适合去重、成员判断、集合关系分析场景。

✨ 相关作品

怎么用优酷放本地视频
365bet中文版客户端

怎么用优酷放本地视频

📅 11-03 👁️‍🗨️ 8054
积分榜规则:
365bet中文版客户端

积分榜规则:

📅 10-15 👁️‍🗨️ 2922
中国古人的色彩观
谁知道365足球网站

中国古人的色彩观

📅 10-21 👁️‍🗨️ 4974