欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

集合~啦啦啦

程序员文章站 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

上一篇: Python学习第一天

下一篇: