集合的操作
# 集合操作 # 集合是一个无序的,不重复的数据组合,它的主要作用如下: # 去重,把一个列表变成集合,就自动去重了 # 关系测试,测试两组数据之前的交集、差集、并集等关系 def nl(): print('='.ljust(30, '=')) list1 = [1, 2, 3, 4, 5, 6, 7, 8] list2 = [3, 4, 5, 6, 8, 0, 11, 23, 55] listNew = [] ''' # for i in list1: # listNew = list1.copy() # print(listNew) # for i in list2: # if i not in listNew: # listNew.append(i) # print(listNew) ''' ''' list3 = list1 + list2 print(list3) list4 = set(list3) listNew = list(list4) print(listNew) ''' ''' for i in list1: if i in list2: print(i) ''' list_1 = [1, 4, 5, 7, 3, 6, 7, 9] print(type(list_1)) list_1 = set(list_1) list_2 = set([2, 6, 0, 66, 22, 8, 4]) print(list_1, list_2) ''' 关系测试: ---------------------------------------- ''' #交集 (1和2 都有) print('交集',list_1.intersection(list_2)) #并集 (1和2 加起来) print('并集',list_1.union(list_2)) #差集 (只存在1不存在2) print(list_1.difference(list_2)) #子集 (1是2 的子集吗?) False print(list_1.issubset(list_2)) #父集 1是2 的父集吗 False print(list_1.issuperset(list_2)) #对称差集 对称差集(项在t或s中,但不会同时出现在二者中) # 1 中独有和 2中独有的放在一起 # 其实就是并集中去掉交集的 print(list_1.symmetric_difference(list_2)) #如果两个集合的交集为空,则返回True # 判断两个集合是否有交集 \ ''' 没有返回true 有返回False ''' print(list_1.isdisjoint(list_2)) ''' 运算符方式 ''' a = set([3, 4, 5, 'l']) b = set('hello') print(a | b) #并 print(a & b) #交 print(a - b) #差 print(a ^ b) #对称差 nl() # 基本操作 #增 单 list_1.add(999) print(list_1) #增 多 list_1.update([3, 77, 34]) print(list_1) #删除一项 list_1.remove(1) print(list_1) nl() #长度 print(len(list_1)) nl() # 测试 x 是否是 s 的成员 x = 1 s = set([1, 2, 3]) result = x in list_1 print(result) #============================== ''' # 测试 x 是否不是 s 的成员 x not in s # 测试是否 s 中的每一个元素都在 t 中 s <= t # 测试是否 t 中的每一个元素都在 s 中 s >= t ''' #============================== ''' s.union(t) s | t 返回一个新的 set 包含 s 和 t 中的每一个元素 ''' #============================== ''' s.intersection(t) s & t 返回一个新的 set 包含 s 和 t 中的公共元素 s.difference(t) s - t 返回一个新的 set 包含 s 中有但是 t 中没有的元素 s.symmetric_difference(t) s ^ t 返回一个新的 set 包含 s 和 t 中不重复的元素 s.copy() 返回 set “s”的一个浅复制 ''' #删除任意一个元素并返回 aa = set([1, 2, 3, 4, 5, 'a', 'b', 'c']) ret = aa.pop() print(ret) print(aa) #从集合中删除元素(如果它是成员)。 # 如果元素不是成员,则什么也不做。 print(aa.discard('a')) #存在 'a' 所以删除了'a' print(aa) print(aa.discard(6)) # 6不存在所以返回none nl()