集合(set):可变的数据类型,他里面的元素必须是不可变的数据类型,无序,不重复。{}
1 set1 = set({1,2,3}) 2 print(set1) 3 4 #增 add,update 5 set1 = {‘alex‘,‘wusir‘,‘ritian‘,‘egon‘,‘barry‘} 6 set1.add(‘女神‘) 7 print(set1) #无序 8 #{‘女神‘, ‘egon‘, ‘barry‘, ‘wusir‘, ‘alex‘, ‘ritian‘} 9 10 set1.update(‘男神‘) #迭代增加,相当于list中的extend,按对象一个一个加 11 print(set1) 12 #{‘男‘, ‘女神‘, ‘egon‘, ‘barry‘, ‘wusir‘, ‘alex‘, ‘神‘, ‘ritian‘} 13 14 #删 pop,remove,del, clear 15 set1.pop() #随机删除,有返回值 16 print(set1) 17 18 set1.remove(‘元素‘) #按元素删除 19 print(set1) 20 21 set1.clear() #清空集合 22 print(set1) 23 24 del set1 #删除集合 25 print(set1) 26 27 # 查 28 for i in set1: 29 print(i)
交集 &
并集 |
差集 -
反交集 ^
子集和超集1 set1 = {1,2,3} 2 set2 = {1,2,3,4,5,6} 3 4 print(set1 < set2) 5 print(set1.issubset(set2)) # 这两个相同,都是说明set1是set2子集。 6 7 print(set2 > set1) 8 print(set2.issuperset(set1)) # 这两个相同,都是说明set2是set1超集。
集合可变,元素不可变,使用frozenset变成集合不可变
1 s = frozenset(‘barry‘) 2 print(s,type(s)) 3 for i in s: 4 print(i)
深浅copy
1 #赋值运算 2 l1 = [1,2,3] 3 l2 = l1 4 l1.append(‘a‘) 5 print("{}\t\t{}".format(l1,l2)) 6 #[1, 2, 3, ‘a‘] [1, 2, 3, ‘a‘]
1 #浅copy 2 l1 = [1,2,3] 3 l2 = l1.copy() 4 print(l1,l2) 5 print(id(l1),id(l2)) 6 l2.append(‘a‘) 7 print(l1,l2) 8 """ 9 [1, 2, 3] [1, 2, 3] 10 1848031189768 1848031187272 11 [1, 2, 3] [1, 2, 3, ‘a‘] 12 """
1 l1 = [1,2,[4,5,6],3] 2 l2 = l1.copy() 3 print(l1,id(l1)) 4 print(l2,id(l2)) 5 l1.append(‘a‘) 6 print(l1,l2) 7 l1[2].append(‘a‘) 8 print(l1,l2) 9 print(id(l1[2])) 10 print(id(l2[2])) 11 """ 12 [1, 2, [4, 5, 6], 3] 2318104334664 13 [1, 2, [4, 5, 6], 3] 2318103951432 14 [1, 2, [4, 5, 6], 3, ‘a‘] [1, 2, [4, 5, 6], 3] 15 [1, 2, [4, 5, 6, ‘a‘], 3, ‘a‘] [1, 2, [4, 5, 6, ‘a‘], 3] 16 2318104337160 17 2318104337160 18 19 """
对于浅copy来说,第一层创建的是新的内存地址,而从第二层开始,指向的都是同一个内存地址,所以,对于第二层以及更深的层数来说,保持一致性。
深Copy
1 import copy 2 l1 = [1,2,[4,5,6],3] 3 l2 = copy.deepcopy(l1) 4 print(l1,id(l1)) 5 print(l2,id(l2)) 6 l1[2].append(‘a‘) 7 print(l1,l2) 8 9 l1 = [1,[1],2,3,4] 10 l2 = l1[:] 11 l1[1].append(‘a‘) 12 13 print(l1,id(l1)) 14 print(l2,id(l2))
对于深copy来说,两个是完全独立的,改变任意一个的任何元素(无论多少层),另一个绝对不改变。
原文地址:https://www.cnblogs.com/dzc18/p/9315123.html
时间: 2024-11-05 22:51:19