集合 set
2024-10-13 20:26:46
集合
集合属于可变数据类型,但它的内容必须是不可变数据类型。
特点:无序 , 不重复
有两种创建方式:
set({1,2,3})和 {1,2,3}
set1 = set({1,2,3,4})
set2 = {1,2,3,4}
print(type(set1),type(set2))
结果为:
<class 'set'> <class 'set'>
集合的操作方法
增:
(1)add 将元素随机添加到集合中(无序)若即将添加的元素集合内已经存在,则不做改变
set1 = {1,2,3,4}
set1.add("aires")
print(set1)
结果为:
{1, 2, 3, 4, 'aires'}
(2)update 将元素迭代式的、无序的,随机添加到集合中
set1 = {1,2,3,4}
set1.update(["dires","mike","dafafafa","lock",456])
print(set1)
结果为:
{1, 'dires', 2, 3, 4, 456, 'lock', 'dafafafa', 'mike'}
删
(1)pop 随机删除,有返回值
set1 = {1, 'dires', 2, 3, 4, 456, 'lock', 'dafafafa', 'mike'}
set1.pop()
print(set1)
结果为:
{1, 2, 3, 4, 'lock', 456, 'mike', 'dafafafa'}
(2)remove 按元素去删,但若集合中没有要删除的元素则会报错
set1 = {1, 'dires', 2, 3, 4, 456, 'lock', 'dafafafa', 'mike'}
set1.remove("dafafafa")
print(set1)
结果为:
{1, 2, 3, 4, 'lock', 'mike', 456, 'dires'}
(3)clear 清空集合
set1 = {1, 'dires', 2, 3, 4, 456, 'lock', 'dafafafa', 'mike'}
set1.clear()
print(set1)
结果为:
set()
(4)del 删除集合
set1 = {1, 'dires', 2, 3, 4, 456, 'lock', 'dafafafa', 'mike'}
del set1
print(set1)
结果为:因为已删除,所以报错
查
for in 循环打印
set1 = {1, 'dires', 2, 3, 4, 456, 'lock', 'dafafafa', 'mike'}
for i in set1:
print(i)
结果为:
1
2
3
4
456
dafafafa
dires
lock
mike
其他操作
交集:& 或者 intersection 打印或返回两个集合共有的元素
set1 = {1, 2, 3, 4, 456}
set2 = {4,5,6,7, 456}
print(set1&set2)
print(set1.intersection(set2))
结果为:
{456, 4}
{456, 4}
反交集: ^ 或者 symmetric_difference 打印或返回两个集合不共有的元素
set1 = {1, 2, 3, 4, 456}
set2 = {4,5,6,7, 456}
print(set1^set2)
print(set1.symmetric_difference(set2))
结果为:
{1, 2, 3, 5, 6, 7}
{1, 2, 3, 5, 6, 7}
并集:|或union 将两个集合合并去重 和增加方法中的update差不多
set1 = {1, 2, 3, 4, 456}
set2 = {4,5,6,7, 456}
print(set1|set2)
print(set1.union(set2))
结果为:
{1, 2, 3, 4, 5, 6, 7, 456}
{1, 2, 3, 4, 5, 6, 7, 456}
差集: -或 difference 集合1减去集合2中的相同元素
set1 = {1, 2, 3, 4, 456}
set2 = {4,5,6,7, 456}
print(set2-set1)
print(set1.difference(set2))
结果为:
{5, 6, 7}
{1, 2, 3}
超集: >或issuperset 检测集合1是否为集合2的超集 若集合1的元素包含了集合2的所有元素 那么集合1便是集合2的超集 返回的是布尔值
若相同那么集合1就是集合2的超集
set1 = {1, 2, 3, 4, 456}
set2 = {4, 456}
print(set1>set2)
print(set1.issuperset(set2))
结果为:
True
True
子集:<或issubset 与超集相反 同样返回布尔值
set1 = {1, 2, 3, 4, 456}
set2 = {4, 456}
print(set2<set1)
print(set2.issubset(set1))
结果为:
True
True
frozenset不可变集合,让集合变成不可变类型 数据类型为frozenset
print(frozenset("aires"),type(frozenset("aires")))
结果为:
frozenset({'e', 'r', 'i', 's', 'a'}) <class 'frozenset'>
最新文章
- Spring-----定时任务Quartz配置之手动设置
- Git常用命令学习(2)
- git version 2.5.0.windows.1中文乱码问题解决方案
- [cocoapods]如何卸载cocoapods
- SQL 语句记录
- 解决linux下javac -version和java -version版本显示不一致
- SuperWebClient -一个基于CURL的.NET HTTP/HTTPS模拟神组件(2)
- QT获取本机IP和Mac地址
- Bootstrap3基础 table-condensed 表格中的单元格紧凑一些
- MariaDB CEO 痛斥云厂商从不回馈社区
- 记一次拿webshell踩过的坑(如何用PHP编写一个不包含数字和字母的后门)
- 关于git中自己的分支和主分支有冲突的解决方案(git和乌龟git)
- [原创]内网渗透JSP webSehll连接工具
- 内置函数zip()
- 【服务器】如何在服务器发布网站?Sasa讲解
- asp.net 微信公众号源码
- SQL Server中数据的修改是如何落盘的?
- [IIS] 测试的产品登陆之后有个引用外部站点js的请求半天都无法返回,导致网页一直在打转,Selenium的driver也无法对页面进行下一步的操作
- c# winform实现同时只允许账号在一台电脑登录的功能
- 解决eclipse偶尔无视breakpoint的行为