1、深浅拷贝
a = [[1,2],3,4] b = a.copy() # 浅拷贝只拷贝第一层 c = a.deepcopy() # 深拷贝 = 克隆一份 b = a a[2] = 3 # 改变原来指针指向内存地址的值,不会新开辟地址空间 print(a,b) #变量之间的转换 c = 1 d = c c = 2 # 新开地址空间 print(c,d)
2、集合(set)
# 集合是一个无序的,不重复的数据组合,它主要作用如下: # ① 去重,把一个列表变成集合,就自动去重了 # ② 关系测试,测试两组数据之前的交集、差集、并集等关系 # ③ 每一个元素必须是可哈希的值(元素不是变量) # ④ 集合本身不可哈希,不能作字典的键 # ⑤ frozenset()不可变集合 # ⑥ 是一个无序的 # 1、创建集合 a = (1,3,4) b = tuple([4,5,6]) # 元组的两种创建方式 print(a) print(b) s = set('alex li') # 集合只有这一种创建方式 print(s) # 2、访问集合 s1 = set('alvin') print('a' in s1) # 判断集合是否存在并返回布尔值 print('b' in s1) # 3、更新集合 s2 = set('alex') s2.add('aec') #写啥加啥 s2.update('akdad') # 单个元素逐个加进去,并去掉重复的元素 s2.update([12,'alex']) s2.remove('l') # 删除元素 s2.pop() # 随机删除 s2.clear() # 清空集合 del s2 # 从内存中删除,就不存在了 # 4、集合类型操纵符 a = set([1,2,3,4,5,6]) b = set([4,5,6,7,8,9]) # ① intersectiom() 交集interc a.intersection(b) # {4,5,6} a & b # ② union 并集 a.union(b) #{1,2,3,4,5,6,7,8,9} a | b # ③ difference 差集 a.difference(b) # {1,2,3} 在a不在b a - b b.difference(a) # {7,8.9} 在b不在a b - a # ④ symmetric_difference() 对称差集,a和b的交集不在其中 a.symmetric_difference(b) a ^ b # ⑤ 父集(超集) a.issuperset(b) # b在不在a里面 a > b # ⑥ 子集 a.issubset(b) # a是不是b的子集 a < b aa = set([1,2,3,4,5,6]) ee = set([1,2,3]) c = aa.issuperset(ee) print(c)