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

5️⃣ set(集合)速查表

📋 常用方法速查表

方法用法示例说明
创建集合s = {1, 2, 3}直接用大括号创建集合
创建集合s = set([1, 2, 3])用列表或其他可迭代对象创建集合
添加元素s.add(4)添加元素,重复添加无效
删除元素s.remove(4)删除指定元素,元素不存在会报错
交集s1 & s2返回两个集合的交集
并集s1Is2返回两个集合的并集
差集s1 - s2返回s1中有,s2中没有的元素
判断元素是否在集合中x in s判断元素是否存在
清空集合s.clear()删除所有元素

1. 集合(set)简介

Python 中的集合(set)是一组无序且不重复的元素集合。它类似于字典(dict)的键集合,但不存储对应的值。集合提供了高效的成员检测和数学集合操作,如交集、并集、差集。


2. set 的特点与使用示例

s = {1, 2, 3}          # 直接创建集合
s = set([1, 2, 3])     # 用列表创建集合s.add(4)               # 添加元素
s.add(4)               # 重复添加无效s.remove(4)            # 删除元素s1 = {1, 2, 3}
s2 = {2, 3, 4}
print(s1 & s2)         # 交集:{2, 3}
print(s1 | s2)         # 并集:{1, 2, 3, 4}
print(s1 - s2)         # 差集:{1}

3. 不可变对象与可变对象

  • 集合(set)和字典(dict)的元素或键必须是不可变对象,因为它们内部依赖哈希值判断唯一性。
  • 字符串(str)、整数(int)、元组(tuple,但其中不能含有可变元素)是常用的不可变对象。
  • 列表(list)、字典(dict)、集合(set)都是可变对象,不能作为集合元素或字典键。

4. 不可变对象示例说明

# 有效的元组作为集合元素或字典键
t1 = (1, 2, 3)
s = set([t1])  # 正常# 包含列表的元组是不可哈希的,不能作为键或集合元素
t2 = (1, [2, 3])
s = set([t2])  # 报错:TypeError: unhashable type: 'list'

5. 字符串是不可变对象示例

a = 'abc'
b = a.replace('a', 'A')  # 新字符串 'Abc',a 本身不变
print(a)  # 输出 'abc'
print(b)  # 输出 'Abc'

字符串的任何操作都会生成新的字符串对象,原字符串不变。


6. 总结

  • set 是无序且无重复元素的集合,支持高效的数学集合操作。
  • 集合中的元素必须是不可变对象。
  • 选择合适的不可变类型作为字典的键或集合的元素,能确保程序稳定、高效运行。
http://www.dtcms.com/a/294766.html

相关文章:

  • UI测试平台TestComplete:高效覆盖风险,加速持续交付
  • 情况:后端涉及到异步操作,数据还没更新完就直接向前端返回success的结果。
  • 如何做好性能测试?
  • 自定义类型:结构体,联合和枚举
  • 慢 SQL接口性能优化实战
  • 线路板快板厂家有哪些?
  • HCIA复习+网络类型及数据链路层协议复习
  • 【已解决】ubuntu执行sudo apt update镜像源更新失败:404 Not Found 没有 Release 文件。
  • 2025暑期—04环境设置-D2L+Jupyter
  • Java应用程序内存占用分析
  • Android root和完整性检测实现方案深度分析
  • 第三章 浏览器 【1. 文档对象模型(DOM)】
  • Pandas库全面学习指南(一)
  • 视觉大模型
  • Linux基本命令
  • 【读代码】Facebook Denoiser:开源端到端语音降噪系统原理与实战
  • 主流软件开发方法综述:从敏捷到开源
  • 表征工程与置信度增强:表征工程是提取隐藏层状态表征,LLM的置信度增强是优化的logist数值
  • 第一章:Go语言基础入门之Hello World与Go程序结构
  • 基于vue框架的服装店管理系统tma7v(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • FastGPT + Kymo:解锁企业专属知识库与智能体开发新体验
  • M3066ANL网络变压器,常用于NEC方案机顶盒等网络设备M3066AN实现网络信号的稳定传输与电气隔离保护
  • MybatisPlus操作方法详细总结
  • ar景区导航导览开发方案:核心技术架构与功能设计
  • 阶段1--域名服务器
  • Ceph残留磁盘清理与格式化
  • lesson22:Python的魔法方法
  • irf实验
  • 常用的正则表达式
  • 陷波频率处的相位补偿:相角超前矫正原理深度拆解