Python集合操作

Python集合
2018-1-11:

1、集合天生去重(即集合里面没有2个相同的元素),集合是无序的


常用关键字:set,intersection,union,difference,symmetric_difference,
issubset,issuperset,isdisjoint,add,remove,discard,pop,in,not in,len

  set 集合
用法:将列表或字典转为集合
list1 = [1,2,3,4,4,3,2,1] #定义列表1
dictionaries1 = {1,2,3,3,4,2} #定义字典1
list2 = set(list1) #将列表1转为集合
dictionaries2 = set(dictionaries1) #将字典1转为集合
print(list2,dictionaries2) #将两个集合打印 
输出:{1, 2, 3, 4} {1, 2, 3, 4}

  intersection 交集&
用法:取出两个集合的相同元素
assemble1 = set([1,2,3,4,"test"]) #定义集合1
assemble2 = set([1,5,6,7,"test1"]) #定义集合2
print (assemble1.intersection(assemble2)) #打印交集
输出:{1}

union 并集|
用法:将两个集合合并成一个集合
assemble1 = set([1,2,3]) #定义集合1
assemble2 = set([1,5,6]) #定义集合2
print (assemble1.union(assemble2)) #打印并集
输出:{1,2,3,5,6}

difference 差集-,需注意集合顺序
用法:将集合1与集合2中共有的元素去掉,然后保留集合1
assemble1 = set([1,2,3]) #定义集合1
assemble2 = set([1,5,6]) #定义集合2
print (assemble1.difference(assemble2)) #打印差集
输出:{2,3}

symmetric_difference 对称差集^
用法:把2个集合相同的去掉,然后合并2个集合
assemble1 = set([1,2,3]) #定义集合1
assemble2 = set([1,2,4]) #定义集合2
print (assemble1.symmetric_difference(assemble2)) #输出{3,4}
输出:{3,4}

issubset 子集
用法:集合1是否包含集合2,是True,否False
assemble1 = set([1,2,3]) #定义集合1
assemble2 = set([1,2]) #定义集合2
print (assemble2.issubset(assemble1)) #输出True
输出:True

issuperset 父集
用法:集合1是否包含集合2,是True,否False
assemble1 = set([1,2,3]) #定义集合1
assemble2 = set([1,2,4]) #定义集合2
print (assemble1.issuperset(assemble2)) #输出False
输出:False

isdisjoint 判断两个集合是否含交集,可用符号(例:<=,>=,>,<)
用法:如果集合1与集合2有交集输出False,否则True
assemble1 = set([1,2]) #定义集合1
assemble2 = set([1,2,4]) #定义集合2
assemble3 = set([5,6,7]) #定义集合2
print(assemble1.isdisjoint(assemble2),end=";") #False
print(assemble1 < assemble2,end=";") #True
print(assemble1.isdisjoint(assemble3)) #True
输出:False;True;True

集合运算符号
assemble1 = set([1,2,3]) #定义集合1
assemble2 = set([1,2,4]) #定义集合2
a = assemble1 | assemble2 #并集|
b = assemble1 & assemble2 #交集&
c = assemble1 - assemble2 #差集- ,需注意集合顺序
d = assemble1 ^ assemble2 #对称差集^
print(a,b,c,d)
输出:{1, 2, 3, 4} {1, 2} {3} {3, 4}

集合的基本操作
添加元素 add
assemble1 = set([1,2,3]) #定义集合1
assemble1.add(4) #添加一个元素
print(assemble1) #输出{1,2,3,4}
assemble1.update([5,6,7]) #添加多个元素,注意[]
print(assemble1) #输出{1,2,3,4,5,6,7}

删除 remove,discard,pop
assemble1 = set([1,2,3]) #定义集合1
assemble1.remove(3) #删除一个元素,如果集合没有该元素会报错
assemble1.discard(3) #删除一个元素,如果集合没有该元素不会报错
print(assemble1) #输出{1,2}
print(assemble1.pop()) #随机删除并返回删除值,每次运行结果一样是因为你的集合数据量不够大,假设输出:1
print(assemble1) #输出{2}


获取集合长度 len
assemble1 = set([1,2,3]) #定义集合1
print(len(assemble1)) #输出:3

判断某元素是否在该集合内 in / not in
assemble1 = set([1,2,3]) #定义集合1
print(1 in assemble1) #输出:True
print(1 not in assemble1) #输出:False

 

posted @ 2018-01-15 00:36  即将注销  阅读(321)  评论(0)    收藏  举报