1、set(集合)属性,无序,不重复序列(也可用于去重) li = [11,222] print(li) 列表的创建 li = [] 空列表 list((11,22,33,4)) 元组转换为列表 列表原理: list __init__,内部执行for循环(11,22,33,4) [11,22,33,4] 字典: dic = {"k1":123} 集合: se = {"123", "456"} s = set() 创建空集合 li = [11,22,11,22] s1 = set(li) 转换为集合 print(s1) 2、集合的功能 set() 创建集合 s1 = {11,22} s2 = set() s3 = set([11,22,33,4]) 操作集合 s = set() 定义一个空集合 print(s) s.add(123) 给集合添加一个元素,每次只能添加一个元素 s.add(123) 不重复,再次添加同一个元素无效 print(s) s.clear() 清空集合 print(s) s1 = {11,22,33} s2 = {22,33,44} s3 = s1.difference(s2) s1中存在,s2中不存在 s3 = s2.difference(s1) s2中存在,s1中不存在
s3 = s1.symmetric_difference(s2) s1中存在,s2中不存在和s2中存在,s1中不存在的元素,返回一个集合
print(s1,s2,s3) s1.difference_update(s2) 将s1中存在的,s2中不存在的更新到s1,此时s1为{11},若以后用不到s1可使用此方法 s1.symmetric_difference_update(s2) s1中存在,s2中不存在和s2中存在,s1中不存在的元素,返回一个集合,此时s1为{11,44} 若以后用不到s1可使用此方法
s1 = {11,22,33} s1.discard(1111) 删除集合任一元素,存在则删除,不存在,不报错 s1.remove(11111) 删除集合任一元素,存在则删除,不存在,报错
ret = s1.pop() 删除集合任一元素(随机删除),不建议使用 print(s1) print(ret) s1 = {11,22,33} s2 = {22,33,44} s3 = s1.union(s2) s1和s2的并集 print(s3) s3 = s1.intersection(s2) s1和s2的交集 s1.intersection_update(s2) s1和s2的交集,更新到s1,此时s1为{22,33},这是一个动作不可直接打印 print(s1) s1 = {11,22,33} s1.add(11)集合不变 s1.add(12)不变 s1.add(13)不变 li = [11,22,3,11,2] li = (11,22,3,11,2) li = "alexalex" s1.update(li) print(s1) 上面分别列表,元组,字符串的执行结果 {33, 2, 11, 3, 22} {33, 2, 11, 3, 22} {33, 'x', 11, 'e', 'l', 'a', 22}
# li = [11,22,33] # list __init__ # li() # list __call__ # li[0] # list __getitem__ # li[0] = 123 # list __setitem__ # def li[1] # list __delitem__ old_dict = { "#1": 8, "#2": 4, "#4": 2, } new_dict = { "#1": 4, "#2": 4, "#3": 2, } # old_kyes = old_dict.keys() # old_set = set(old_kyes) new_set = set(new_dict.keys()) old_set = set(old_dict.keys()) remove_set = old_set.difference(new_set) add_set = new_set.difference(old_set) update_set = old_set.intersection(new_set)