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)  # 集合是无序的,每次取集合里面的一个值

 

posted @ 2018-11-28 23:44  yatou001  阅读(109)  评论(0编辑  收藏  举报