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

python记录之集合

Python中的集合(Set)是一个无序且不包含重复元素的数据结构。集合主要用于成员检测和数据去重。

1. 集合的创建

在Python中,你可以使用大括号{}set()函数来创建一个集合。注意,如果你使用大括号{}并且只包含一个元素,那么你需要在这个元素后面加上一个逗号,以区分空字典和只包含一个元素的集合。

# 使用大括号创建集合
set1 = {1, 2, 3, 4}# 使用set()函数创建集合
set2 = set([1, 2, 3, 4])# 只有一个元素的集合,需要加上逗号
set3 = {5,}# 空集合
set4 = set()

2. 集合的常用操作

2.1 添加元素

你可以使用add()方法向集合中添加一个元素,或者使用update()方法添加多个元素(可以是列表、元组或其他集合)。

set1 = {1, 2, 3}
set1.add(4)      # 添加单个元素
set1.update([5, 6])  # 添加多个元素
2.2 删除元素

你可以使用remove()方法删除集合中的一个元素(如果该元素不存在,会引发KeyError异常)。你也可以使用discard()方法,它不会引发异常。此外,pop()方法会随机删除并返回集合中的一个元素(如果集合为空,会引发KeyError异常)。最后,你可以使用clear()方法清空整个集合。

set1 = {1, 2, 3, 4}
set1.remove(3)       # 删除元素3
set1.discard(5)     # 尝试删除元素5,但元素不存在,不会引发异常
print(set1.pop())   # 随机删除并返回一个元素
set1.clear()         # 清空集合
2.3 集合运算

Python支持多种集合运算,包括并集、交集、差集和对称差集。

  • 并集:使用|运算符或union()方法。
  • 交集:使用&运算符或intersection()方法。
  • 差集:使用-运算符或difference()方法。
  • 对称差集:使用^运算符或symmetric_difference()方法。
set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}union_set = set1 | set2    # {1, 2, 3, 4, 5, 6}
intersection_set = set1 & set2  # {3, 4}
difference_set = set1 - set2  # {1, 2}
symmetric_difference_set = set1 ^ set2  # {1, 2, 5, 6}
2.4 集合的判断

你可以使用innot in运算符来判断一个元素是否存在于集合中。

set1 = {1, 2, 3, 4}
print(2 in set1)  # True
print(5 not in set1)  # True
2.5 集合的其他方法
  • isdisjoint(other):检查两个集合是否没有交集。
  • issubset(other)<=:检查一个集合是否是另一个集合的子集。
  • issuperset(other)>=:检查一个集合是否是另一个集合的超集。
  • len(set):返回集合中元素的数量。

3. 集合的应用场景

  • 去重:集合是无序且不包含重复元素的数据结构,因此常用于数据去重。
  • 成员检测:你可以使用innot in运算符来快速判断一个元素是否存在于集合中。
  • 集合运算:在数据分析和处理中,集合运算常用于比较两个或多个数据集。

4. 注意事项

  • 集合中的元素必须是不可变类型(如整数、浮点数、字符串、元组等),不能是列表、字典或其他可变类型。
  • 集合是无序的,因此你不能通过索引来访问集合中的元素。
  • 集合不支持索引、切片等操作。
http://www.lryc.cn/news/367908.html

相关文章:

  • ResourceManager 的 rpc server 模型
  • Java面试八股之什么是自动装箱和自动拆箱
  • OrangePi AIpro小试牛刀-目标检测(YoloV5s)
  • QT案例 记录解决在管理员权限下QFrame控件获取拖拽到控件上的文件路径
  • [HNCTF 2022 WEEK4]flower plus
  • Mongo常用语法(java代码)
  • go语言后端开发学习(二)——基于七牛云实现的资源上传模块
  • 探索微软新VLM Phi-3 Vision模型:详细分析与代码示例
  • 如何使用GPT-4o函数调用构建一个实时应用程序?
  • [Vue-常见错误]浏览器显示Uncaught runtime errors
  • html常见的表单元素有哪些,html表单元素有哪些?
  • spring boot sso
  • Keras深度学习框架实战(5):KerasNLP使用GPT2进行文本生成
  • 速盾:网站重生之我开了高防cdn
  • 【spark】spark列转行操作(json格式)
  • 记录一次Linux启动kafka后并配置了本地服务连接远程kafka的地址后依旧连接localhost的问题
  • MacOS中Latex提示没有相关字体怎么办
  • 物资材料管理系统建设方案(Word)—实际项目方案
  • !力扣102. 二叉树的层序遍历
  • Vue3 + TS + Antd + Pinia 从零搭建后台系统(一) 脚手架搭建 + 入口配置
  • 中国同胞进来看看,很多外国人想通过CSDN坑咱们中国人
  • Web前端电话咨询:深度解析与实用指南
  • 使用python绘制季节图
  • VS2019专业版 C#和MFC安装
  • spring入门aop和ioc
  • 使用Python创建Word文档
  • 【设计模式】装饰器模式(结构型)⭐⭐
  • 计算机网络--应用层
  • 计算机网络 —— 网络层(IP数据报)
  • Clo3D导出服装动画,使用Unity3D展示