集合

一、集合特点:

1、不同元素组成

2、无序

3、集合中元素必须是不可变类型(int、str、tuple)

补充:

正常集合都是可修改的,但frozenset是不可修改的集合

二、集合的创建

s=set('hello')
print(s)

s=set(['alex','alex','sb'])
print(s)

三、集合的方法

1、添加&清除&拷贝


s={1,2,3,4,5,6}
s2={678,789,987}
#添加
'''
添加一个值
'''
s.add(
's') s.add('3') s.add(3) print(s)
'''
添加多个值
'''
s.update(s2)
print(s)


#清除

s.clear()
print(s)

#拷贝
s1=s.copy()
 

2、删除

s={'sb',1,2,3,4,5,6}

#随机删
s.pop()

#指定删除
s.remove('sb')
s.remove('hellol')   #删除元素不存在会报错
s.discard('sbbbb')   #删除元素不存在不会报错
print(s)

3、difference_update() & intersection_update() & symmetric_difference_update()

  update()

python_l = ['lcg', 'szw', 'zjw', 'lcg']
linux_l = ['lcg', 'szw', 'sb']
p_s = set(python_l)
l_s = set(linux_l)
print(p_s, l_s)
'''
difference_update()功能和下面代码一样
print('差集',p_s-l_s)
p_s=p_s-l_s
'''
p_s.difference_update(l_s)
print(p_s)

4、isdisjoint()

若两集合没有交集返回True

s1={1,2}
s2={2,3,5}
print(s1.isdisjoint(s2))

5、issubset() & issuperset()

是否是子集&父集

s1 = {1, 2}
s2 = {1, 2, 3}
print(s1.issubset(s2))  # s1 是s2 的子集
print(s2.issubset(s1))  # False
print(s2.issuperset(s1))  # s1 是s2 的父集

四、集合关系运算

python_l=['lcg','szw','zjw','lcg']
linux_l=['lcg','szw','sb']

#将列表转换成集合并去重 p_s
=set(python_l) l_s=set(linux_l) #求交集 print(p_s,l_s) print(p_s.intersection(l_s)) print(p_s&l_s) #求并集 print(p_s.union(l_s)) print(p_s|l_s) #差集 print('差集',p_s-l_s) print(p_s.difference(l_s)) print('差集',l_s-p_s) print(l_s.difference(p_s))
#交叉补集
print('交叉补集',p_s.symmetric_difference(l_s))
print('交叉补集',p_s^l_s)

  

原文地址:https://www.cnblogs.com/jiangzhch5/p/13257404.html