集合~啦啦啦
程序员文章站
2024-03-15 15:11:39
...
集合
什么是集合
- Python语言提供的内置数据结构
- 与列表、字典一样都属于可变类型的序列
- 集合是没有value的字典
集合的创建
1.直接创建
s={'Python','java','C++',90,100}
2.使用内置函数set()
s1 = set(range(6))
print('s1=',s1,type(s1))
#s1= {0, 1, 2, 3, 4, 5} <class 'set'>
s2 = set(set([3,4,53,5,6]))
print('s2=',s2,type(s2))
#s2= {3, 4, 5, 6, 53} <class 'set'>
s3 = set(set((3,4,4,5,6,6,8)))
print('s3=',s3,type(s3))
#s3= {3, 4, 5, 6, 8} <class 'set'>
s4 = set('python')
print('s4=',s4,set({1,2,3,5,6}))
#s4= {'h', 'y', 'p', 'n', 't', 'o'} {1, 2, 3, 5, 6}
3.空集合的创建
s = set()
print(s,type(s))
#set() <class 'set'>
注意:直接用花括号创建的空值,它不是集合
s2 = {}
print(s2,type(s2))
#{} <class 'dict'>
集合的相关操作
判断集合元素是否存在
in / not in
集合元素的增加
1、add()添加一个元素
2、update()添加多个元素
update(a,b,c)
s.update([a,b,c])
s.update((a,b,c))
集合元素的删除
1、remove()删除一个元素
若不存在,报KeyError异常
2、discard()删除一个元素
和remove()一样,但是元素不存在不会抛异常
3、pop()删除一个元素
一次删除任意一个元素
4、clear()清空集合
集合间的关系
1、两个集合是否相等??
可以使用运算符==或!=进行判断
s={10,50,20,30,40}
s1={10,20,30,40,50}
print(s==s1) #True
print(s!=s1) #False
元素相同就相等
2、一个集合是否是另一个集合的子集
可以调用方法issubset()进行判断
s ={10,20,30,40,50}
s1={10,20,30,40}
s2={10,20,90}
print(s1.issubset(s)) #True
print(s2.issubset(s)) #False
一个集合是否是另一个集合的超集
可以调用方法issuperset()进行判断
s ={10,20,30,40,50}
s1={10,20,30,40}
s2={10,20,90}
print(s.issuperset(s1)) #True
print(s.issuperset(s2)) #False
两个集合是否含有交集
可以调用方法isdisjoint()进行判断
s ={10,20,30,40,50}
s1={10,20,30,40}
s2={90,100}
print(s1.isdisjoint(s)) #False
print(s2.isdisjoint(s)) #True
注意方法中的dis
集合的数据操作
s ={10,20,30,40,50}
s1={10,20,30,90}
1、求交集
print(s.intersection(s1))
#{10,20,30}
print(s & s1}
#{10,20,30}
2、求并集
prnit(s.union(s1))
#{10,20,30,40,50,90}
print(s | s1)
#{10,20,30,40,50,90}
3、差集
指集合s与两个集合的交集的差
print(s.difference(s1))
#{40,50}
print(s-s1)
#{40,50}
4、对称差
print(s.symmetric_difference(s1))
#{40,50,90}
print(s^ s1)
#{40,50,90}
集合生成式
指用于生成集合的公式
{ i*i for i in range(1,10) }
列表生成式,只需把{}改为[]
上一篇: Python学习第一天
推荐阅读
-
集合~啦啦啦
-
FusionCharts XT v3.9.0发布啦【附下载】 FusionCharts XT数据可视化图表解决方案交互图表
-
【免费】捷微微信管家公众号运营培训开课啦! 博客分类: java微信 java微信捷微运营培训
-
再也不用担心算错啦~看看我们实现的计算器吧~(函数指针数组)
-
【STM32F103笔记】4、中断之外部中断——喂~烧水啦
-
JavaEye新闻频道上线啦!
-
广州市传智PHP课程,5800元优惠只有几天欲报从速啦
-
博客终于有了自己的啦 博客分类: 日常啰嗦
-
博客终于有了自己的啦 博客分类: 日常啰嗦
-
Seam 2.2.0.GA 发布啦 博客分类: seam SeamJBosswebbeansHibernateSpring