集合的增删改查集合类型的关系测试
Posted wqq0723
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了集合的增删改查集合类型的关系测试相关的知识,希望对你有一定的参考价值。
集合类型
-
如何同时找出买了IPhone7和8的人?
-
集合的增删改查
1 #创建集合 2 s = {} #字典 3 print(type(s)) #结果为:<class ‘dict‘> 4 5 s1 = {1,2,3,4,5} #集合 6 print(type(s1)) #结果为:<class ‘set‘> 7 8 #将列表转化为集合 9 l= [1,2,3,4,5,2,3] 10 print(l) #结果为:[1, 2, 3, 4, 5, 2, 3] 11 print(set(l)) #结果为:{1, 2, 3, 4, 5} 12 print(type(set(l))) #结果为:<class ‘set‘> 13 14 15 #集合的增删改查 16 #增加 17 s2 = {1,2,3,4,5} 18 #增加一个已存在的值 19 s2.add(2) 20 print(s2) #结果为:{1, 2, 3, 4, 5} 21 #增加一个没有的值 22 s2.add(8) 23 print(s2) #结果为:{1, 2, 3, 4, 5, 8} 24 25 #删除 26 # 集合是无序的,随机删除一个元素 27 s2.pop() 28 print(s2) #结果为:{2, 3, 4, 5, 8} 29 #删除集合中指定的元素 30 s2.remove(8) 31 print(s2) #结果为:{2, 3, 4, 5} 32 #remove方法,删除集合中不存在的元素会报错 33 #s2.remove(6) #结果为:KeyError: 6, 34 #discard方法,删除集合中不存在的元素不会报错(类似于字典中的get方法) 35 s2.discard(6) 36 print(s2) #结果为:{2, 3, 4, 5} 37 38 #把多个值加入集合 39 s2.update([10,12,15,1,2,3,4,5]) 40 print(s2) #结果为:{1, 2, 3, 4, 5, 10, 12, 15} 41 42 #清空set中的内容; 43 s2.clear() 44 print(s2) #结果为:set() 45 46 #print(help(dic4.pop()))查看字典的帮助信息;
集合类型的关系测试
1 #交集(买了iphone7并且还买了iPhone8的人) 2 iphone7 = {‘alex‘,‘rain‘,‘jack‘,‘old_driver‘} 3 iphone8 = {‘alex‘,‘jack‘,‘shanshan‘,‘old_boy‘} 4 print(iphone7.intersection(iphone8)) #结果为:{‘jack‘, ‘alex‘} 5 print(iphone7 & iphone8) #结果为:{‘jack‘, ‘alex‘} 6 7 #差集 8 iphone7 = {‘alex‘,‘rain‘,‘jack‘,‘old_driver‘} 9 iphone8 = {‘alex‘,‘jack‘,‘shanshan‘,‘old_boy‘} 10 #买了iphone7却没有买iPhone8的人 11 print(iphone7.difference(iphone8)) #结果为:{‘rain‘, ‘old_driver‘} 12 print(iphone7 - iphone8) #结果为:{‘rain‘, ‘old_driver‘} 13 #买了iphone8却没有买iPhone7的人 14 print(iphone8.difference(iphone7)) #结果为:{‘shanshan‘, ‘old_boy‘} 15 print(iphone8 - iphone7) #结果为:{‘shanshan‘, ‘old_boy‘} 16 17 #并集(买了iphone7或者iPhone8的人) 18 iphone7 = {‘alex‘,‘rain‘,‘jack‘,‘old_driver‘} 19 iphone8 = {‘alex‘,‘jack‘,‘shanshan‘,‘old_boy‘} 20 print(iphone8.union(iphone7)) #结果为:{‘shanshan‘, ‘old_boy‘, ‘rain‘, ‘alex‘, ‘jack‘, ‘old_driver‘} 21 print(iphone8 | iphone7) #结果为:{‘shanshan‘, ‘old_boy‘, ‘rain‘, ‘alex‘, ‘jack‘, ‘old_driver‘} 22 print(iphone7.union(iphone8)) #结果为:{‘old_driver‘, ‘old_boy‘, ‘alex‘, ‘rain‘, ‘shanshan‘, ‘jack‘} 23 print(iphone7 | iphone8) #结果为:{‘old_driver‘, ‘old_boy‘, ‘alex‘, ‘rain‘, ‘shanshan‘, ‘jack‘} 24 25 #对称差集(只买了iphone7 或者 只买了iPhone8的人) 26 iphone7 = {‘alex‘,‘rain‘,‘jack‘,‘old_driver‘} 27 iphone8 = {‘alex‘,‘jack‘,‘shanshan‘,‘old_boy‘} 28 print(iphone7.symmetric_difference(iphone8)) #结果为:{‘old_driver‘, ‘rain‘, ‘shanshan‘, ‘old_boy‘} 29 print(iphone8.symmetric_difference(iphone7)) #结果为:{‘old_driver‘, ‘rain‘, ‘shanshan‘, ‘old_boy‘} 30 print(iphone7 ^ iphone8) #结果为:{‘old_driver‘, ‘rain‘, ‘shanshan‘, ‘old_boy‘} 31 print(iphone8 ^ iphone7) #结果为:{‘old_driver‘, ‘rain‘, ‘shanshan‘, ‘old_boy‘} 32 33 #子集和超集(超集和子集可以使用> 或<符号来表示) 34 s = {1,2,3,4} 35 s2 = {2,3,5,6} 36 s2.add(1) 37 s2.add(4) 38 print(s2) #结果为:{1, 2, 3, 4, 5, 6} 39 print(s) #结果为:{1, 2, 3, 4} 40 #判断 s 是不是 s2 的子集 s <= s2 41 print(s.issubset(s2)) #结果为:True 42 #判断 s 是不是 s2 的超集 s >= s2 43 print(s.issuperset(s2)) #结果为:False 44 #判断 s2 是不是 ss 的超集 s2 >= s 45 print(s2.issubset(s2)) #结果为:True 46 47 #当集合中的数据量特别大时,可以用s.isdisjoint()判断 是不是 不相交 48 print(s.isdisjoint(s2)) #结果为:False 49 print(s2.isdisjoint(s)) #结果为:False 50 51 l = {1,2,3,4,-1,-2} 52 l1 = {1,2,3,4,5,6} 53 #将l与l1差集的结果赋值给l 54 l.difference_update(l1) 55 print(l) #结果为:{-2, -1} 56 #将l与l1差集的结果赋值给l1 57 l1.difference_update(l) 58 print(l1) #结果为:{5, 6}
以上是关于集合的增删改查集合类型的关系测试的主要内容,如果未能解决你的问题,请参考以下文章