当前位置: 首页 > 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.gsyq.cn/news/30482.html

相关文章:

  • MinIO快速入门
  • Educational Codeforces Round 66 (Rated for Div. 2) A~F
  • stm32使用SPI外设读取W25Q32芯片
  • Avjinder Singh Kaler | 数量遗传学基础
  • 鲁东大学提出可解释的自适应集成机器学习全基因组选择算法用于小麦产量性状关键SNPs筛选
  • 台球厅收银台押金原路退回系统押金预授权—东方仙盟 - 详解
  • 数论专题小记
  • 《程序员修炼之道:从小工到专家》笔记1
  • 科普报告:分子标记辅助选择(MAS)育种
  • 实用指南:【ansible/K8s】K8s的自动化部署源码分享
  • 作物遗传育种中的多亲本互交群体(MAGIC)
  • 联邦大型语言模型、多智能体大型语言模型是什么? - 详解
  • 一个用于自动化基因表达分析的多智能体框架GenoMAS
  • 50年的玉米育种改良,是如何应对气候变化的?
  • 刷题日记—洛谷数组题单—幻方
  • python爬虫进阶版练习(只说重点,selenium) - 指南
  • 基因组选择(GS)如何加速作物遗传增益?
  • OpenAI推出内置ChatGPT的Atlas浏览器:重新定义网页浏览体验
  • 数据清洗
  • 102302110高悦作业1
  • 2025.10.23 模拟赛
  • Day23-C:\Users\Lenovo\Desktop\note\code\JavaSE\Basic\src\com\InOut
  • LLM学习记录DAY12
  • 深入解析:Zark Lab 与 Walrus 合作,建立内容发现、可访问性与实用性的基础 AI 智能层
  • 前后端分离毕设课题:基于React.js+Java+Springboot框架+Mysql数据库在线买菜商城专业的系统设计与实现
  • 2025 年 Python 数据分析全栈学习路线:从入门到精通的进阶指南 - 实践
  • Windows 11 家庭版关闭自动更新
  • 权威调研榜单:石英砂生产线厂家TOP3榜单好评深度解析
  • FSEventsParser脚本升级与macOS取证技术解析
  • redis食用方法