当前位置: 首页 > 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.hskmm.com/?act=detail&tid=39053

相关文章:

  • 深入解析:港大和字节携手打造WorldWeaver:以统一建模方案整合感知条件,为长视频生成领域带来质量与一致性双重飞跃。
  • 集合与列表有何不同的使用场景,如何选择?
  • 虚拟机下 安装 ubuntu 18.04
  • MinIO快速入门
  • 多表查询-练习
  • 实验3:卷积神经网络 - OUC
  • 使用 Docker Compose 在 CentOS 7 单机服务器上部署多实例 MinIO 集群
  • 102302147傅乐宜作业1
  • 多智能体大模型在农业中的应用研究与展望
  • 嵌入式基础作业--第七周--IIC协议采集温湿度与OLED显示
  • Nature子刊 | 基于生物学信息的神经网络
  • 软件开发(10.23)
  • 2025年项目总延期?这30款项目进度管理软件一定有一款适合你!
  • Educational Codeforces Round 66 (Rated for Div. 2) A~F
  • 鲁东大学提出可解释的自适应集成机器学习全基因组选择算法用于小麦产量性状关键SNPs筛选
  • 台球厅收银台押金原路退回系统押金预授权—东方仙盟 - 详解
  • if 语句
  • 数论专题小记
  • 机械臂和相机的9点标定原理
  • 遗传改良中的核心技术:交配设计
  • 《程序员修炼之道:从小工到专家》笔记1
  • 语言是火,视觉是光:论两种智能信号的宿命与人机交互的未来 - 教程
  • 书籍推荐 | 《数量遗传学》(王建康)
  • Plant Com | 一种新的多源数据(基因组、表型和跨环境)融合的基因组预测框架-GPS
  • 科普报告:分子标记辅助选择(MAS)育种
  • 作物遗传育种中的多亲本互交群体(MAGIC)
  • 联邦大型语言模型、多智能体大型语言模型是什么? - 详解
  • 一个用于自动化基因表达分析的多智能体框架GenoMAS
  • AI巨头动态:从OpenAI收购到Meta裁员,我们看到了什么?
  • 小麦锈病抗性全景图及其在育种设计中的应用