4-7 集合
1、集合天生可以去重
1 # 集合天生就可以去重 2 l = [1,2,2,1,4,5] 3 lset = set(l) 4 print(lset) # {1, 2, 4, 5}
2、交集
1 # 集合是无序的 2 stus1 = {'胡绍燕','王义','王新','马春波','高文平'} 3 stus2 = {'乔美玲','胡绍燕','王义','王新','马春波',"王一铭"} 4 5 #交集 6 res = stus1.intersection(stus2) # 都有的 7 res2 = stus1 & stus2 8 print(res) # {'王义', '王新', '马春波', '胡绍燕'} 9 print(res2) # {'王义', '王新', '马春波', '胡绍燕'}
3、并集(去重)
1 stus1 = {'胡绍燕','王义','王新','马春波','高文平'} 2 stus2 = {'乔美玲','胡绍燕','王义','王新','马春波',"王一铭"} 3 4 #并集 把2个集合合并到一起,然后去除重复 5 res = stus1.union(stus2) 6 res2 = stus1 | stus2 7 # {'胡绍燕', '王义', '高文平', '乔美玲', '马春波', '王新', '王一铭'} 8 print(res) 9 print(res2)
4、差集,前面一个有,后面一个没有的
1 stus1 = {'胡绍燕','王义','王新','马春波','高文平'} 2 stus2 = {'乔美玲','胡绍燕','王义','王新','马春波',"王一铭"} 3 4 #差集 前面一个有,后面一个没有的 5 res = stus1 - stus2 6 res2 = stus1.difference(stus2) 7 res3 = stus2.difference(stus1) 8 print(res) # {'高文平'} 9 print(res3) # {'乔美玲', '王一铭'} 10 print(res2) # {'高文平'}
5、对称差集,只在一个集合中存在的
1 stus1 = {'胡绍燕','王义','王新','马春波','高文平'} 2 stus2 = {'乔美玲','胡绍燕','王义','王新','马春波',"王一铭"} 3 4 #对称差集 只在一个集合里面出现过的,都给你整出来 5 res = stus1.symmetric_difference(stus2) 6 res2 = stus1 ^ stus2 7 # {'高文平', '乔美玲', '王一铭'} 8 print(res) 9 print(res2)
6、集合的操作(增删该查)
1 stus1 = {'胡绍燕','王义','王新','马春波','高文平'} 2 stus2 = {'乔美玲','胡绍燕','王义','王新','马春波',"王一铭"} 3 4 # stus1.add('小明') #增加元素 5 print(stus1) # {'王新', '高文平', '王义', '马春波', '胡绍燕', '小明'} 6 7 # stus1.pop() # 随机删除一个元素 8 # print(stus1) # {'马春波', '高文平', '王义', '王新'} 9 10 stus1.remove('王义') #删除指定的元素 11 print(stus1) # {'高文平', '马春波', '胡绍燕', '王新'}
7、集合的循环取值
1 stus1 = {'胡绍燕','王义','王新','马春波','高文平'} 2 for s in stus1: 3 print(s) # 集合是无序的,每次取集合里面的一个值