基础数据类型补充和深浅拷贝
1. 基础数据类型补充
大多数的基本数据类型的知识.已经学完了
join()
"*".join("麻花藤") # 麻*花*藤 把传递进去的参数进行迭代. 获取到的每个元素和前面的*进行拼接. 得到的是字符串
split() 切割. 切割的结果是列表
s = "卢本伟_拿了_UU_一血" lis = s.split("_") print(lis)
s = "*".join(lis)
print(s)
列表和字典: 都不能在循环的时候直接删除
把要删除的内容记录在新列表中然后循环这个新列表. 删除列表(字典)
s = "卢本伟_拿了_UU_一血" lis = s.split("_") lis1 = [] for i in lis : if "U" in i: lis1.append(i) print(lis1) for i in lis1 : lis.remove(i) print(lis)
fromkeys()
坑1: 返回新字典. 不会更改老字典
dic = {} dic = dic.fromkeys("卢本伟","牛逼") #fromkeys中"卢本伟"是迭代的添加到新列表中的"key" print(dic)
坑2: 当value是可变的数据类型. 各个key共享同一个可变的数据类型. 其中一个被改变了. 其他都跟着变
dic = {} dic = dic.fromkeys("卢本伟",[]) #当value为可变的数据类型时,新列表中的key共用一个value dic["卢"].append("牛逼") #当任何一个key改变了value,所有的value值都会变 print(dic)
2. 深浅拷贝(重点, 难点)
1. = 没有创建新对象, 只是把内存地址进行了复制
2. 浅拷贝 lis.copy() 只拷贝第一层.
3. 深拷贝
import copy
copy.deepcopy() 会把对象内部的所有内容进行拷贝