6.集合魔法

集合魔法

集合

  集合由大括号括起,每个元素之间由逗号分割;

  集合由不同元素组成,无重复元素;

  集合是无序的,不能通过索引下标切片取值;

  集合可以用来去重;

  集合,如:s = {1,2,3,4,5,6,‘666’,(1,2,3),False}

集合魔法

  1.add():添加一个元素

1 s = {11,22,33,44,55}
2 s.add(3)
3 print(s)
4 # =>{33, 3, 11, 44, 22, 55}
5 s.add('')
6 print(s)
7 # =>{33, 3, 11, 44, '是', 22, 55}
View Code

  

  2.clear():清空元素

1 s = {11,22,33,44,55}
2 s.clear()
3 print(s)
4 # =>set()
View Code

  

  3.copy():复制拷贝,浅拷贝

1 s = {11,22,33,44,55}
2 s1 = s.copy()
3 print(s1)
4 # =>{33, 22, 55, 11, 44}
View Code

  

  4.pop():随机删除元素

1 s = {11,22,33,44,55}
2 s.pop()
3 print(s)
4 # =>{11, 44, 22, 55}
View Code

  

  5.remove():可以删除指定元素,删除不存在的元素会报错

1 s = {11,22,33,44,55,'123','567'}
2 s.remove(33)
3 print(s)
4 # =>{11, 44, '567', '123', 22, 55}
5 s.remove('我是你')
6 print(s)
7 # =>会报错!!!
View Code

  

  6.discard():可以删除指定元素,删除不存在的元素不会报错

1 s = {11,22,33,44,55,'123','567'}
2 s.discard(33)
3 print(s)
4 # =>{'123', 11, 44, '567', 22, 55}
5 s.discard('我是你')
6 print(s)
7 # =>{'123', 11, 44, '567', 22, 55}  ===》不会报错!!
View Code

  

  7.intersection()/&:求元素的交集,相当于and

1 s1 = {'张三','李四','王五','刘六','朱二','冯大','黄八'}
2 s2 = {'张三','','跳舞','黄八','喜欢','上树'}
3 print(s1,s2)
4 # =>{'王五', '黄八', '朱二', '张三', '李四', '刘六', '冯大'} {'喜欢', '黄八', '上树', '张三', '跳舞', '爱'}
5 print(s1.intersection(s2))
6 # =>{'黄八', '张三'}
7 print(s1 & s2)
8 # =>{'张三', '黄八'}
View Code

  

  8.union()/|:求元素的并集

1 s1 = {'张三','李四','王五','刘六','朱二','冯大','黄八'}
2 s2 = {'张三','','跳舞','黄八','喜欢','上树'}
3 print(s1.union(s2))
4 # =>{'上树', '黄八', '冯大', '刘六', '朱二', '跳舞', '喜欢', '爱', '张三', '王五', '李四'}
5 print(s1 | s2)
6 # =>{'上树', '黄八', '冯大', '刘六', '朱二', '跳舞', '喜欢', '爱', '张三', '王五', '李四'}
View Code

  

  9.difference()/-:求元素的差集

1 s1 = {'张三','李四','王五','刘六','朱二','冯大','黄八'}
2 s2 = {'张三','','跳舞','黄八','喜欢','上树'}
3 print(s1 - s2)
4 # =>{'朱二', '李四', '冯大', '刘六', '王五'}
5 print(s2 - s1)
6 # =>{'跳舞', '爱', '喜欢', '上树'}
7 print(s1.difference(s2))
8 # =>{'王五', '冯大', '朱二', '李四', '刘六'}
View Code

  

  10.symmetric_difference()/^:求交叉补集,两个集合中去除相同元素,剩余所有元素的集合

1 s1 = {'张三','李四','王五','刘六','朱二','冯大','黄八'}
2 s2 = {'张三','','跳舞','黄八','喜欢','上树'}
3 print(s1.symmetric_difference(s2))
4 # =>{'朱二', '上树', '喜欢', '王五', '跳舞', '冯大', '李四', '刘六', '爱'}
5 print(s1 ^ s2)
6 # =>{'朱二', '上树', '喜欢', '王五', '跳舞', '冯大', '李四', '刘六', '爱'}
View Code

  

  11.difference_update():求完差集后,将值赋给原始集合,原始结合发生变化

1 s1 = {'张三','李四','王五','刘六','朱二','冯大','黄八'}
2 s2 = {'张三','','跳舞','黄八','喜欢','上树'}
3 # s1 = s1 - s2
4 # print(s1)
5 # # =>{'朱二', '刘六', '王五', '冯大', '李四'}
6 s1.difference_update(s2)
7 print(s1)
8 # =>{'王五', '冯大', '李四', '刘六', '朱二'}
View Code

  

  12.isdisjoint():两个集合做交集,没有相同元素即为空集合则返回True

1 s1 = {'张三','李四','王五','刘六','朱二','冯大','黄八'}
2 s2 = {'张三','','跳舞','黄八','喜欢','上树'}
3 print(s1.isdisjoint(s2))
4 # =>False   # 交集有相同元素,则返回False
View Code

  

  13.issubset():判断一个集合是否是另一个集合的子集

  14.issuperset():判断一个集合是否是另一个集合的父集

 1 s1 = {11,22,33,44,55}
 2 s2 = {1,2,3,4,5,22}
 3 s3 = {22,33}
 4 print(s1.issubset(s2))  # 判断s1是不是s2的子集
 5 # =>False
 6 print(s3.issubset(s1))  # 判断s3是不是s1的子集
 7 # =>True
 8 print(s1.issubset(s3))  # 判断s1是不是s3的子集
 9 # =》False
10 print(s1.issuperset(s3))  # 判断s1是不是s3的父集
11 # =》True
View Code

  

  15.update():将另一个集合更新到一个集合

1 s1 = {11,22,33,44 }
2 s2 = {1,2,3,4,5,66,22}
3 s1.update(s2)
4 print(s1)
5 # =>{33, 1, 2, 3, 4, 5, 66, 11, 44, 22}
View Code

 

posted @ 2020-04-27 21:48  星落……  阅读(112)  评论(0)    收藏  举报