当前位置: 首页 > news >正文

集合常见操作示例

集合(Set)是数学和编程中常用的数据结构,用于存储唯一元素(无重复值)。以下是集合的常见操作及其示例,涵盖数学集合和编程实现(以Python为例):


1. 创建集合

  • 数学表示A = {1, 2, 3}
  • Python示例
    A = {1, 2, 3}          # 直接创建集合
    B = set([2, 3, 4])     # 从列表转换为集合(自动去重)
    C = set()              # 空集合
    

2. 基本操作

(1) 添加元素

  • 数学:向集合中加入新元素。
  • Python
    A.add(4)      # A = {1, 2, 3, 4}
    

(2) 删除元素

  • 数学:从集合中移除元素。
  • Python
    A.remove(2)   # 若元素不存在会报错
    A.discard(5)  # 若元素不存在不会报错
    A.pop()       # 随机移除一个元素(返回被移除的值)
    A.clear()     # 清空集合
    

(3) 检查元素是否存在

  • 数学:判断元素是否属于集合。
  • Python
    print(3 in A)  # 输出 True 或 False
    

3. 集合运算

(1) 并集(Union)

  • 数学A ∪ B = {x | x ∈ A 或 x ∈ B}
  • Python
    A = {1, 2, 3}
    B = {3, 4, 5}
    print(A | B)  # 输出 {1, 2, 3, 4, 5}
    

(2) 交集(Intersection)

  • 数学A ∩ B = {x | x ∈ A 且 x ∈ B}
  • Python
    print(A & B)  # 输出 {3}
    

(3) 差集(Difference)

  • 数学A - B = {x | x ∈ A 且 x ∉ B}
  • Python
    print(A - B)  # 输出 {1, 2}
    

(4) 对称差集(Symmetric Difference)

  • 数学A Δ B = (A - B) ∪ (B - A)
  • Python
    print(A ^ B)  # 输出 {1, 2, 4, 5}
    

(5) 子集与超集

  • 数学A ⊆ B(A是B的子集),A ⊇ B(A是B的超集)。
  • Python
    C = {1, 2}
    print(C.issubset(A))  # True(C是A的子集)
    print(A.issuperset(C)) # True(A是C的超集)
    

4. 其他操作

(1) 集合长度

  • 数学:集合中元素的数量。
  • Python
    print(len(A))  # 输出 3
    

(2) 遍历集合

  • Python
    for x in A:print(x)
    

(3) 集合推导式

  • Python
    squares = {x**2 for x in range(5)}  # 输出 {0, 1, 4, 9, 16}
    

5. 不可变集合(Frozenset)

  • 特点:集合的不可变版本,可哈希,可作为字典的键。
  • Python
    frozen_A = frozenset([1, 2, 3])
    

示例总结

# 创建集合
A = {1, 2, 3}
B = {3, 4, 5}# 并集
print(A | B)  # {1, 2, 3, 4, 5}# 交集
print(A & B)  # {3}# 差集
print(A - B)  # {1, 2}# 对称差集
print(A ^ B)  # {1, 2, 4, 5}# 子集检查
C = {1, 2}
print(C <= A)  # True(C是A的子集)

应用场景

  • 去重(如列表去重)。
  • 快速查找(成员检测时间复杂度为O(1))。
  • 关系运算(如用户权限的并集、交集等)。

通过灵活使用集合操作,可以高效解决许多数据处理问题。

http://www.rkmt.cn/news/30482.html

相关文章:

  • 深入解析:港大和字节携手打造WorldWeaver:以统一建模方案整合感知条件,为长视频生成领域带来质量与一致性双重飞跃。
  • 实用指南:【代码的暴力美学】-- C语言基础编程题_1
  • 集合与列表有何不同的使用场景,如何选择?
  • 102302147傅乐宜作业1
  • 多智能体大模型在农业中的应用研究与展望
  • 嵌入式基础作业--第七周--IIC协议采集温湿度与OLED显示
  • Nature子刊 | 基于生物学信息的神经网络
  • 2025年项目总延期?这30款项目进度管理软件一定有一款适合你!
  • 机械臂和相机的9点标定原理
  • 语言是火,视觉是光:论两种智能信号的宿命与人机交互的未来 - 教程
  • 书籍推荐 | 《数量遗传学》(王建康)
  • Plant Com | 一种新的多源数据(基因组、表型和跨环境)融合的基因组预测框架-GPS
  • 深入解析:UNIX下C语言编程与实践3-Vi 编辑器从入门到精通:快捷键使用与高效编辑技巧
  • CF1896F
  • 【大数据】水质数据可视化分析实用的系统 计算机工程 Hadoop+Spark环境配置 数据科学与大信息技术 附源码+文档+讲解
  • 深入解析:3. 从0到上线:.NET 8 + ML.NET LTR 智能类目匹配实战--从业务到方案:消费类目智能匹配的整体设计
  • xyd 2025 S 模拟赛
  • 标题:AI巨头动态:从OpenAI的野心到Meta的裁员潮
  • Plant Com | 将基因编辑与组学、人工智能和先进农业技术相结合以提高作物产量
  • 推荐书籍 | 基因组遗传大数据分析方法
  • Python 潮流周刊#124:理性看待 GIL 的移除
  • 102302104刘璇-数据采集与融合技术实践作业1
  • 深入解析:每日前端宝藏库 | tinykeys ✨
  • 《程序员修炼之道》阅读笔记3
  • 百度智能云一念智能创作优秀的平台
  • 【深度相机术语与概念】 - 详解
  • AI元人文:共识锚定的基石——语境主权
  • MySQL5.7安装及配置
  • uniapp打包安卓跟ios记录
  • ASP.NET Core Blazor简介和快速入门三(布局和路由)