1 #set 本身是可变的,但是里面的元素是不可变得 2 #set 集合是无序的,并且里面的元素不能重复 3 4 a = {1,1,1,2,3,4,5,6,"str",True,12.21213} 5 6 print(a) # 1 被自动去重了{'str', 1, 2, 3, 4, 5, 6, 12.21213} 7 8 #集合增 9 10 a.add("c") #add增加的值必须是不可变得 11 12 a.update([1,2,3])#迭代添加不可变元素 13 14 #集合删除 15 16 a.remove("str") #暗元素去删除 17 18 a.pop() #arbitrary 随机进行删除 19 20 # a.clear() 21 22 # del a 23 24 set1 = {1,2,3,4,5} 25 set2 = {1,2,5,6,8} 26 27 a1 = set1.intersection(set2)#交集 & 共有 28 29 a2 = set1.symmetric_difference(set2) #反交集 都没有 30 31 a3 = set1.union(set2)#并集 | 全部 32 33 a4 = set1.difference(set2) #差集 - 对set2来说,set1独有的 34 35 a5 = set1.issubset(set2) #子集判断 如果set1里面的内容set2都有,set1就是set的子集 36 37 a6 = set2.issuperset(set1)#超集判断 如果set2的内容包含set1,set2就是set1的超集 38 39 print(a1,a2,a3,a4,a5,a6) 40 41 # 重点 不可变集合 frozenset无法添加,删除 42 43 a7 = frozenset("abcdfdsjf") 44 45 print(type(a7)) #<class 'frozenset'> 46 47 # frozenset 无增加删除方法, 48 49 50 #重点 深浅拷贝 51 52 # 普通的拷贝直接只用copy关键字 53 54 #例如: 55 56 oldList = [1,2,3,[4,5,6,[7,8]]] 57 58 newList = oldList.copy() 59 60 oldList[3][3][0] = "999" 61 62 print("浅拷贝新列表",newList) #浅拷贝 只能拷贝最外面一层元素,嵌套的元素无法拷贝,原值改变,新的列表也将改变 63 64 # 若想完全拷贝嵌套元素,需要导入 copy 包 65 66 # 例: 67 68 import copy 69 70 oldList = [1,2,3,[4,5,6,[7,8]]] 71 72 newList = copy.deepcopy(oldList) #运用 deepcopy进行深拷贝 73 74 oldList[3][3][0] = "999" 75 76 print("深拷贝新列表",newList)
Python随笔7-集合和深浅拷贝理解
猜你喜欢
转载自www.cnblogs.com/huasongweb/p/9503125.html
今日推荐
周排行