python 集合set
目录
集合
集合数学
集合方法
案例
集合 set
1.用途:运算关系 去重
2.定义方式:在{}内用逗号分隔各个元素
a = {1,1.1,'Jason',(1,2)} # a = ser(1,1.1,'Jason',(1,2)) print(a,type(a)) # {'Jason', 1, (1, 2), 1.1} <class 'set'>
3.集合的三大特性
(1)每个值都是不可变的
(2)元素不能重复
a = {1,1,22,22,3,6,6} print(a) # {1, 3, 22, 6}
(3)集合内的元素是无序的
a = {1,'a',2,'s'} # a[0] # 报错
集合数学
1. 两个集合中相同的数,合集
2. 并集
3. 差集
4. 交集
5. 相等
6. 子集
# a = {1,2,3,4,5} # b = {3,4,5,6,7} # # 提取a,b中相同的数字.集合 # print(a & b) # {3, 4, 5} # print(a.intersection(b)) # # # 提取a和b的并集 # print(a | b) # {1, 2, 3, 4, 5, 6, 7} # print(a.union(b)) # # # a 和 b的差集 # print(a - b) # 1, 2} # print(a.difference(b)) # print(b - a) # {6, 7} # print(b.difference(a)) # # # a和b都有 交集 # print(a ^ b) # {1, 2, 6, 7} # print(a.symmetric_difference((b))) # 是否相等 # a = {1,2,3,4,5} # b = {1,2,3,5,4} # print(a == b) # True # 无序的 # 子集 # a = {1,2,3,4} # b = {1,2,3,5,4} # print(b >= a)
内置方法
1. update
2. add
3. pop
4. remove
# 1.update # a = {1,2,3,4} # a.update({3,4,5}) # print(a) # 2.add # a = {1,2,3,4} # a.add(5) # print(a) # 3.pop # a ={1,2,3,4} # res = a.pop() # print(a) # print(res) # 4.remove # a = {1,2,3,4} # res = a.remove(3) # print(a) # print(res) # None # 删除的元素不存在不报错 # 5.difference_update() 和difference相同 # a = {1,2,3,4} # a1 = {1,2} # a.difference_update(a1) # print(a) # a.difference(a1) # print(a) # {3, 4} # 6.discard() # a = {1,2,3,4} # res = a.discard(3) # # print(res) # None # print(a) # {1, 2, 4} # 删除的元素不存在不报错 # 7.isdisjoint() # a = {1,2,3} # a1 = {1,2,4} # print(a.isdisjoint(a1)) # 两个集合没有交集这为真
总结
1,存多个值
2,无序
3,可变类型
案例
1. 集合去重
局限性
1 无法保证原数据的顺序
2 当一个数据包含多个值,每个值为不可变类型才能用集合去重
# names ={'alex','egon','alex','alex','egon','lxx'} # s = set(names) # print(s) # a = list(s) # print(a) # students = [ # {'name':'egon','age':18}, # {'name':'jason','age':19}, # {'name':'oldboy','age':20}, # {'name':'egon','age':18}, # {'name':'jason','age':19}, # ] # # set(students) # 报错 # # a = [] # for info in students: # if info not in a: # a.append(info) # # print(a) # students = a # print(students)