day_07 深浅拷贝
1. 基础数据类型的补充 1字符串的操作: 1.join 把字符串或者列表的的内拼接,拼接成字符串 和split相反--把字符串转换成列表 2.删除 字典和列表在循环中是不能进行删除的,可以在循环中把要删除的内容放入一个列表中 ,再循环新列表,删除老列表.或者就是用pop()从后面往前面删 3.fromkeys dict.fromkeys(iters,value) 把可迭代对象进行迭代,并和后面的value组合成键值对,并返回字典 坑1:这个过程是新建一个字典并赋值的过程,不会改变原来的字典 dic={} dic.fromkeys(iters,value) print(dic) 坑2: d=fromkeys(iters,[]) 生成的新字典的每一个每一个value值都是相同的[],所以不管那个key的value改变都一起改变,因为value值是同一个
2.set集合{} 1.特点: 无序,不重复的,内部元素必须可哈希:内部元素是属于不可变的类型 2. 作用 去重:lst=list(set(lst) 3.增改删查: 1.增: add() update("xx") 2.改: set没有索引,所以没办法定位元素,只能删除后再添加 remove() add() 3.删除 pop() 随机弹出一个 remove("") 直接删除元素 claer() 清空后是set(),因为要和dic区分 4.查 因为set是一个可迭代对象,所以可用for循环 for el in set: print(el)
3.深浅拷贝 1.= 赋值,没有产生新对象那个,两个对象指向同一个内存地址, 所以说,如果源对象发生改变,被赋值的对象也跟着改变 2.浅拷贝 .copy() [:]只会拷贝第一层内容,第二层内容不会拷贝 3.深拷贝 import cocy copy.deepcopy() 深度拷贝,把对象内部所有内容全部拷贝一份 不会产生一个改变,另外一个跟着改变的情况 作用:快速创建对象,减少内存的占用