python学习之集合
集合:由不同元素组成的集合
#不同元素组成,无序,集合中元素必须是不可变类型
s=set('hello')
print(s) ==》{'h', 'o', 'l', 'e'}
s=set(['alex','alex','sb'])
print(s) ==》{'alex', 'sb'}
s={1,2,3,4,5,6}
#1)添加add()
s.add('s')
print(s) ==》{'s', 1, 2, 3, 4, 5, 6}
2)清空clear()
s.clear()
print(s) ==>set()
3)复制copy()
s1=s.copy()
s={'sb',1,2,3,4,5,6}
#4)随机删pop()
# s.pop()
#5)指定删除remove()
# s.remove('sb')
# s.remove('hellol') #删除元素不存在会报错
# s.discard('sbbbb')#删除元素不存在不会报错
# print(s)
****************************************************
p =['lc','qw','we']
l =['lc','qw']
p_s=set(p)
l_s=set(l)
print(p_s,l_s) ==》{'we', 'lc', 'qw'} {'lc', 'qw'}
#求交集(intersection/&)
print(p_s.intersection(l_s)) ==》{'lc', 'qw'}
print(p_s&l_s) ==》{'lc', 'qw'}
# 求并集(union/|)
print(p_s.union(l_s)) ==>{'lc', 'qw', 'we'}
print(p_s|l_s) ==>{'lc', 'qw', 'we'}
#求差集(difference/-)
p =['lc','qw','we']
l =['lc','qw','er']
p_s=set(p)
l_s=set(l)
print(p_s.difference(l_s)) <==> print(p_s-l_s) ==> {'we'}
print(l_s.difference(p_s)) <==> print(l_s-p_s) ==> {'er'}
#求交叉补集(symmetric_difference/^)
p =['lc','qw','we']
l =['lc','qw','er']
p_s=set(p)
l_s=set(l)
print(p_s.symmetric_difference(l_s))
《==》print(p_s^l_s) ==》{'er', 'we'}
#求差集并更新(difference_update)
p =['lc','qw','we']
l =['lc','qw','er']
p_s=set(p)
l_s=set(l)
p_s.difference_update(l_s) 《==》 p_s=p_s-l_s
print(p_s)
==》{'we'}
#判断是否有交集isdisjoint(两个集合的交集为空,则返回True)
s1={1,2}
s2={4,3}
print(s1.isdisjoint(s2)) ==》True
#判断是否是子集(issubset),是则返回True
s1={1,2}
s2={1,2,3}
print(s1.issubset(s2)) #s1是s2的子集
==>True
#判断是否是父集(issuperset),是则返回True
s1={1,2}
s2={1,2,3}
print(s2.issuperset(s1)) ==》True
#使用自己和他人的联合更新集合(update)
s1={1,2,5}
s2={1,2,3}
s1.update(s2) #可更新多个值 (add更新一个值 ,union不更新)
print(s1) ==》{1, 2, 3, 5}
#集合是可变类型,定义不可变类型(frozenset)时这没有pop,remove等方法 执行会报错
s=frozenset('hello')
print(s) ==》 frozenset({'h', 'e', 'l', 'o'})
#可通过转换集合去重
如:names=['alex','alex','wupeiqi']
names=list(set(names))
print(names) ==》['wupeiqi', 'alex']

浙公网安备 33010602011771号