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

07_Python数据类型_集合

在这里插入图片描述

Python的基础数据类型

  • 数值类型:整数、浮点数、复数、布尔
  • 字符串
  • 容器类型:列表、元祖、字典、集合

集合

集合(set)是Python中一个非常强大的数据类型,它存储的是一组无序且不重复的元素,集合中的元素必须是不可变的,且元素之间用逗号隔开,集合的元素之间用大括号括起来。集合是可变数据类型。

集合的特点:

  • 确定性:集合中的元素是不可变类型。集合是可变数据类型。
  • 互异性:集合中的元素互不相同,不能重复,元素是唯一的。
  • 无序性:集合中的元素无序,即不能通过索引访问集合中的元素。只能遍历。

定义集合

可以使用大括号 {} 或者 set() 函数来创建集合。如果使用大括号,则至少需要包含一个元素;如果使用 set(),则可以创建一个空集合。

# 创建一个空集合
empty_set = set()
# 创建一个包含一个元素的集合
single_element_set = {1}
# 创建一个包含几个元素的集合
my_set = {1, 2, 3, 'a', 'b', 'c'}

访问集合元素

由于集合是无序的,因此不能通过索引来访问元素。但是,可以使用循环来遍历集合中的所有元素。

# 遍历集合
for element in my_set:print(element)

集合操作

集合支持多种操作,如并集、交集、差集等。

  • 并集(Union):使用 | 运算符或 union() 方法。
  • 交集(Intersection):使用 & 运算符或 intersection() 方法。
  • 差集(Difference):使用 - 运算符或 difference() 方法。
  • 对称差集(Symmetric Difference):使用 ^ 运算符或 symmetric_difference() 方法。
# 定义两个集合
set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}# 并集
union_set = set1 | set2  # 或 set1.union(set2)
union_set1 = set1.union(set2)
print(union_set)
print(union_set1)
# 交集
intersection_set = set1 & set2  # 或 set1.intersection(set2)
intersection_set1 = set1.intersection(set2)
print(intersection_set)
print(intersection_set1)
# 差集
difference_set = set1 - set2  # 或 set1.difference(set2)
difference_set1 = set1.difference(set2)
print(difference_set)
print(difference_set1)
# 对称差集
symmetric_difference_set = set1 ^ set2  # 或 set1.symmetric_difference(set2)
symmetric_difference_set1 = set1.symmetric_difference(set2)
print(symmetric_difference_set)
print(symmetric_difference_set1)

集合方法

集合还提供了许多有用的方法,如:

  • add():向集合中添加一个元素。
  • remove():从集合中移除一个元素,如果元素不存在,则抛出 KeyError。
  • discard():从集合中移除一个元素,如果元素不存在,则什么也不做。
  • pop():随机移除并返回集合中的一个元素。
  • clear():清空集合中的所有元素。
# 向集合中添加元素
my_set.add('d')
print(my_set)# 从集合中移除元素
my_set.remove('a')
print(my_set)# 清空集合
my_set.clear()
print(my_set)

集合推导式

与列表推导式类似,集合推导式可以用来生成集合。

# 创建一个包含0-9每个数字的平方的集合
squared_set = {x**2 for x in range(10)}
print(squared_set)
# 列表推导式
s = {8, 3, 1, 5, 11}
{i * 2 for i in s}

集合在Python中是一种非常有用的数据类型,特别是在需要快速检查元素是否存在或执行集合运算时。

附件

本文对应的jupyter notebook源码链接,欢迎下载练习:https://download.csdn.net/download/fx_yzjy101/89760705

如有问题请留言。

http://www.lryc.cn/news/439555.html

相关文章:

  • 结合人工智能,大数据,物联网等主流技术实现业务流程的闭环整合的名厨亮灶开源了
  • vue环境搭建相关介绍
  • MyBatis系统学习(四)——MyBatis的关联映射和缓存机制
  • 【iOS】present和push
  • Axure RP 9最新安装程序及汉化包下载(支持Win、Mac版,附下载安装教程)
  • k8s环境搭建(续)
  • kali——binwalk的使用
  • Ubuntu 24.04中安装virtualenv
  • 一个简约的uniapp登录界面,基于uniapp+vue3+uview-plus
  • 系统架构设计师 需求分析篇二
  • IP 协议分析《实验报告》
  • 人工智能开发实战matplotlib库应用基础
  • Android 源码集成可卸载 APP
  • cJSON-轻量级解析模块、字符串的神——编织STM32C8T6与阿里云信息传递的纽带
  • 【Git】Clone
  • web开发 之 HTML、CSS、JavaScript、以及JavaScript的高级框架Vue(学习版2)
  • 【课程学习】信号检测与估计II
  • 【深度学习|PyTorch】基于 PyTorch 搭建 U-Net 深度学习语义分割模型——附代码及其解释!
  • DPDK基础入门(十):虚拟化
  • OpenCV_图像旋转超详细讲解
  • 关于 OceanBase 4.x 中被truncate的 table 不再支持进回收站的原因
  • Numpy索引详解(数值索引,列表索引,布尔索引)
  • 大数据新视界 --大数据大厂之MongoDB与大数据:灵活文档数据库的应用场景
  • 三年 Sparker 都不一定知道的算子内幕
  • PG表空间
  • 谷粒商城のElasticsearch
  • 排队免单模式小程序开发
  • 从OracleCloudWorld和财报看Oracle的转变
  • 搭建 PHP
  • kubernetes技术详解,带你深入了解k8s