Python基础学习之集合

集合是一个无序、不重复的数据集合,它的主要作用如下:

  • 去重:把一个列表变成集合,就可以去除重复的内容
  • 关系测试:测试两组数据之间的交集、并集、差集等关系

集合常用的操作:

#创建一个数值集合
s=set([99,1,23,8,4,7])
print('s=',s)
#创建一个唯一字符的集合
t=set('MyPython')
print('t=',t)
#把一列表变成集合,验证去重功能
list=[5,2,7,36,2,5,111]
list2set=set(list)
print('列表变成集合后为:',list2set)
#交集
#求交集、并集时集合前后顺序无所谓
set1=set([3,5,7,9,12,0])
set2=set([1,2,3,6,8,9])
#s1与s2结果一样。求交集的两种算法都可以
s1=set1.intersection(set2)
s2=set1&set2
print('set1=',set1)
print('set2=',set2)
print('set1与set2的交集是:',s1,s2)
#并集
#union()=|
s3=set1.union(set2)
s4=set2|set1
print('set1与set2的并集是:',s3,s4)
#差集
print('***********求set1与set2的差集***********')
print('set1=%s\nset2=%s\n'%(set1,set2))
s5=set1.difference(set2)#求差集(数值在set1中,但不在set2中)
s6=set2.difference(set1)#求差集(数值在set2中,但不在set1中)
s7=set1-set2            #求差集(数值在set1中,但不在set2中)
s8=set2-set1            #求差集(数值在set2中,但不在set1中)
print('s5=%s\n'%s5,'S6=%s\n'%s6,'s7=%s\n'%s7,'s8=%s\n'%s8)

#对称差集
print("*************求对称差集**************")
s9=set1.symmetric_difference(set2)
s10=set1^set2
print('set1与set2的对称差集是:',s9,s10)

#基本操作
set1.remove(3)#删除set1中的一项3
print(set1)
set1.update([66.77,88,99])#在set2中添加三个数值
print(set1)

len(set1)#求set1的长度
#x in set1  #测试x是否是set1的成员
#x not in set1

#子集 超集
a=set([2,3,4,5,9])
b=set([2,3,5])
c=set([44,2,7,5,12,3])
print(a.issuperset(b))
print(b.issuperset(a))
print(b.issubset(a))
print(b.issubset(c))
print(a>=b)
print(a<=b)
print(b<=c)
print(b>=c)

  

posted @ 2017-05-02 21:04  JUSTZHI  阅读(293)  评论(0编辑  收藏  举报