百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

4.python学习笔记-集合(python里面集合)

off999 2025-07-07 22:19 54 浏览 0 评论

1.关于集合

集合是一类元素无序不重复的数据结构,常用场景是元素去重和集合运算。python可以使用大括号{}或者set()函数创建集合,如果创建一个空集合必须用set()而不是{},因为{}是用来表示空字典类型。

对比java,java有set相关的接口,是通过接口层面抽象的,具体有不同的实现类,比如:HashSet、TreeSet等。

2.常用操作

创建集合

#1.使用{}创建,自动去重
names={"li lei","ha mei mei","li lei","song lei"}
print(type(names))
print(names)
names={}
print(type(names))
#2.空set集合用set()函数表示,不能用{}
names=set()
print(type(names))
#3.基于list,tuple等创建
names_list=["li lei","ha mei mei","li lei","song lei"]
names=set(names_list)
print(type(names))
print(names)
name_tuple=("li lei","ha mei mei","li lei","song lei")
names=set(name_tuple)
print(type(names))
print(names)  
输出结果:
<class 'set'>
{'ha mei mei', 'song lei', 'li lei'}
<class 'dict'>
<class 'set'>
<class 'set'>
{'ha mei mei', 'song lei', 'li lei'}
<class 'set'>
{'ha mei mei', 'song lei', 'li lei'}

集合包含

使用in/not in判断是否包含某个元素

names={"li lei","ha mei mei","li lei","song lei"}
print(names)
print("li lei" in names)
print("wang lei" not in names)
输出结果:
{'song lei', 'li lei', 'ha mei mei'}
True
True

集合运算

交集/并集/差集/对称差/子集/超集

names_a={"li lei","ha mei mei","song lei","wang lei"}
names_b={"li lei","ha mei mei","song lei","zhao lei"}
names_c={"li lei","ha mei mei","song lei"}
#交集,用于获取两个或多个集合中共同拥有的元素
print("交集:",names_a.intersection(names_b))
print("交集:",names_a & names_b)

#并集,用于合并两个或多个集合中的所有元素
print("并集:",names_a.union(names_b))
print("并集:",names_a | names_b)

#差集,用于获取一个集合中存在,而另一个集合中不存在的元素
print("并集:",names_a.difference(names_b))
print("并集:",names_a - names_b)

#对称差,用于获取两个集合中不共有的元素
print("对称差:",names_a.symmetric_difference(names_b))
print("对称差:",names_a ^ names_b)

#子集,用于判断一个集合所有元素是否被另一个集合包含
print("子集:",names_c.issubset(names_a))
print("子集:",names_c <= names_a)

#超集,用于判断一个集合是否包含另一个集合的所有元素
print("超集:",names_a.issuperset(names_c))
print("超集:",names_a >= names_c)
输出结果:
交集: {'li lei', 'ha mei mei', 'song lei'}
交集: {'li lei', 'ha mei mei', 'song lei'}
并集: {'li lei', 'zhao lei', 'ha mei mei', 'wang lei', 'song lei'}
并集: {'li lei', 'zhao lei', 'ha mei mei', 'wang lei', 'song lei'}
并集: {'wang lei'}
并集: {'wang lei'}
对称差: {'zhao lei', 'wang lei'}
对称差: {'zhao lei', 'wang lei'}
子集: True
子集: True
超集: True
超集: True

添加元素

#添加元素
names_a={"li lei","ha mei mei"}
names_a.add("zhao lei")
#重复添加,不会报错
names_a.add("zhao lei")
print(names_a)

#可以添加不可变的元组,不能是list/set/dict
names_a.add(("zhao lei","qian lei"))
print(names_a)

#让人费解的update函数
#update函数传入字符串,会将字符串拆分成字符后添加
names_a.update("123")
print(names_a)

#update函数传入元组,会添加每个元组元素
names_a.update(("zhao lei","qian lei"))
print(names_a)

#update函数传入字典,会添加每个字典的key
names_a.update({"test":10})
print(names_a)
输出结果:
{'li lei', 'zhao lei', 'ha mei mei'}
{'li lei', 'zhao lei', ('zhao lei', 'qian lei'), 'ha mei mei'}
{'ha mei mei', 'zhao lei', ('zhao lei', 'qian lei'), 'li lei', '2', '1', '3'}
{'ha mei mei', 'zhao lei', ('zhao lei', 'qian lei'), 'li lei', '2', '1', 'qian lei', '3'}
{'ha mei mei', 'zhao lei', ('zhao lei', 'qian lei'), 'li lei', '2', '1', 'qian lei', '3', 'test'}

删除元素

#删除元素
names_a={"li lei","ha mei mei","song lei","wang lei"}
#尝试remove不存在的元素,会报错:KeyError: 'not exist'
#names_a.remove("not exist")
names_a.remove("song lei")
print(names_a)

#尝试discard不存在的元素,不会报错
names_a.discard("not exist")
names_a.discard("wang lei")
print(names_a)

#pop会随机选一个
names_a.pop()
print(names_a)

#清空集合
names_a.clear()
print(names_a)
输出结果:
{'li lei', 'ha mei mei', 'wang lei'}
{'li lei', 'ha mei mei'}
{'ha mei mei'}
set()

修改元素

集合中的元素都是无序的,所以不能使用下标,一般修改操作可以转化为:先删除,再添加

#修改元素
names_a={"li lei","ha mei mei","song lei","wang lei"}
print(names_a)
names_a.discard("wang lei")
names_a.add("wang li")
print(names_a)
输出结果:
{'song lei', 'wang lei', 'li lei', 'ha mei mei'}
{'ha mei mei', 'song lei', 'wang li', 'li lei'}

集合拷贝

#集合复制
names_a={"li lei","ha mei mei","song lei","wang lei"}
print(names_a)
names_b=names_a.copy()
print(names_b)
输出结果:
{'wang lei', 'li lei', 'ha mei mei', 'song lei'}
{'wang lei', 'li lei', 'ha mei mei', 'song lei'}

相关推荐

win7依赖服务或组无法启动怎么办
  • win7依赖服务或组无法启动怎么办
  • win7依赖服务或组无法启动怎么办
  • win7依赖服务或组无法启动怎么办
  • win7依赖服务或组无法启动怎么办
photoshop cs6破解(photoshop cs6破解版)
  • photoshop cs6破解(photoshop cs6破解版)
  • photoshop cs6破解(photoshop cs6破解版)
  • photoshop cs6破解(photoshop cs6破解版)
  • photoshop cs6破解(photoshop cs6破解版)
笔记本电脑忘记密码打不开怎么办
  • 笔记本电脑忘记密码打不开怎么办
  • 笔记本电脑忘记密码打不开怎么办
  • 笔记本电脑忘记密码打不开怎么办
  • 笔记本电脑忘记密码打不开怎么办
win7安全模式进去也黑屏(win7安全模式黑屏只有鼠标能动)

分辨率设置超出范围或者显卡驱动有问题导致的。解决方法:1、开机按F8选择安全模式进入安全模式。2、在安全模式桌面用鼠标右键点我的电脑,属性,打开设备管理器,展开设备管理器,用鼠标右键选择显卡驱动卸载...

win7激活程序(win7激活程序怎么用)

windows7的激活方法如下1、首先打开计算机,在计算机内找到暴风激活工具选项并使用鼠标右键点击,然后在弹出的选项栏内找到“以管理员身份运行”选项并使用鼠标点击。2、激活工具自动识别到win7版本,...

怎么更新ie浏览器(贴吧热门评论)
  • 怎么更新ie浏览器(贴吧热门评论)
  • 怎么更新ie浏览器(贴吧热门评论)
  • 怎么更新ie浏览器(贴吧热门评论)
  • 怎么更新ie浏览器(贴吧热门评论)
台式电脑联网怎么连接(台式电脑以太网怎么连接)

电脑连接家庭网络连接方法如下1.首先我们要检查自己的网络连接。检查网络连接的方法很简单,我们只需要把鼠标放到屏幕的上方,用右键点击一下桌面,点击“个性化”即可。  2.进入页面后我们点击左上方的主页。...

鸿蒙os系统(鸿蒙OS系统更新)

鸿蒙os是分布式模块化的一个系统!所谓的模块化就是它可以根据终端的不同,开发成不同的模块!但最底层都是一样的,都是鸿蒙!所以你会在电视,智能手表,手机等等产品上看到鸿蒙!鸿蒙是华为基于万物互联而打造的...

360手机助手极速版(360手机助手官方下载安装)

可以的,手机助手里面有很多功能,有手机加速悬浮球一、打开设定-关于设备-系统更新-更新。通过在线固件升级(FOTA)服务下载并安装固件更新。注:使用FOTA软件升级所需条件:1、稳定的WI-FI或...

幻影wifi手机版官网(幻影wifi2020官网版)

  第一步、下载最新版“幻影Wifi破解软件”。  第二步、下载之后安装至手机。  第三步、安装成功后,就可以打开软件,之后该幻影Wifi破解软件会自动扫描接收到信号的WIFI,并且会显示几格信号...

怎么把c盘扩大(pe系统怎么把c盘扩大)

C盘的内存通常是指C盘的存储空间,而存储空间不能从别的盘直接增加,必须通过调整分区大小或者更换大容量硬盘来实现。具体操作可以通过以下两种方式之一:1.磁盘管理工具:在计算机的“控制面板”中找到“管理工...

chrome 安卓下载(chrome安卓下载apk)

安卓手机可以先下载一个应用宝,然后在应用宝上下载一个谷歌地球,随后再下载一个ourplay,将之前下载的谷歌地球导入进ourplay就好了,谷歌地球就能使用了,我自己的手机就是这么操作的

最流畅的浏览器(浏览器流畅度排名)

我觉得QQ浏览器9.0就不错,我也是喜欢在浏览器上看视频,朋友给我推荐的这款。这款浏览器是以“快”著称的,体现在很多方面,上网速度快,平常看视频、玩游戏都是很流畅的,因为这款浏览器在系统的稳定性和流畅...

sm总线控制器驱动下载(sm总线控制器是什么驱动程序)

SM总线控制器是主板控制芯片上的一个通信控制器.它主要是希望通过一条廉价并且功能强大的总线(由两条线组成),来控制主板上的设备并收集相应的信息。MBus为系统和电源管理这样的任务提供了一条控制总线,使...

固态硬盘选择mbr还是gpt(固态硬盘选择mbr还是guid)

固态硬盘用mbr。用mbr,除速度快之外,系统支持度更高。此外,微软对于gpt的支持还不是很好,win7以前的系统基本不支持gpt。主引导记录(MBR),也被称为主引导扇区,是计算机开机后访问硬盘时所...

取消回复欢迎 发表评论: