集合的作用
知识点回顾:可变类型是不可hash类型,不可变类型是可hash类型
作用:去重,关系运算
定义:可以包含多个元素,用逗号分割,集合的元素遵循三个原则:
1.每个元素必须是不可变类型(可hash,可作为字典的key)
2.没有重复的元素
4.无序
注意集合的目的是将不同的值存放在一起,不同的集合间用来做关系运算,无需纠结集合中的单个值
二、常用方法
#!/usr/bin/python3 student = {'Tom', 'Jim', 'Mary', 'Tom', 'Jack', 'Rose'} print(student) # 输出集合,重复的元素被自动去掉 # 成员测试 if('Rose' in student) : print('Rose 在集合中') else : print('Rose 不在集合中') # set可以进行集合运算 a = set('abracadabra') b = set('alacazam') print(a) print(a - b) # a和b的差集 print(a | b) # a和b的并集 print(a & b) # a和b的交集 print(a ^ b) # a和b中不同时存在的元素 |并集(print(pythons.union(linuxs))) &交集(print(pythons.intersection(linuxs))) -差集(print(pythons.difference(linuxs))) ^对称差集(print(pythons.symmetric_difference(linuxs))) >,>= ,<,<= 父集(issuperset),子集(issuberset)
set方法
1:add方法添加,添加可变的数据类型也是会报错的
s = {1,2,5,5,'g','h'} s.add(3) prin(s)
结果:
{1, 2, 3, 5, 'h', 'g'}
2:clear 清空集合
3:intersection 交集,相当于&
s = {1,7,9} s1 = {1,9,5} print(s&s1) print(s.intersection(s1)) 结果: {9, 1} {9, 1}
4:union 并集,相当于 |
s = {1,7,9} s1 = {1,9,5} print(s|s1) print(s.union(s1)) 结果: {1,5,7,9} {1,5,7,9}
5:difference 差集,相当于-
s = {1,7,9} s1 = {1,9,5} print(s-s1) print(s.difference(s1)) 结果: {7} {7}
6:symmetric_difference 交叉补集,相当于^
s = {1,7,9} s1 = {1,9,5} print(s^s1) print(s.symmetric_difference(s1)) 结果: {5, 7} {5, 7}
7:difference-update 差集更新
8:isdisjoint 判断是否有交集:
9:issubset 判断是否为子集
s1={1,2} s2={1,2,3} print(s1.issubset(s2)) print(s2.issubset(s1)) 结果: True False
10:删除
s = {9, 'sb', 1, 2, 3, 4, 5, 6} s.pop() # pop不能指定删除,只可以随机删除 print(s) s.remove(4) # 指定删除元素,当删除的元素不存在时,删除会报错 print(s) s.discard(5) # 指定元素删除;和remove唯一的区别删除不存在不会报错 print(s) 结果: {2, 3, 4, 5, 6, 9, 'sb'} {2, 3, 5, 6, 9, 'sb'} {2, 3, 6, 9, 'sb'}