网站建设页面美工,百度标注平台怎么加入,wordpress增加文章类型,网站建设全流程对于浅层拷贝而言 不会发生拷贝的数据类型有#xff1a;number、str、tuple 会发生拷贝的数据类型有#xff1a;list、dict、set 对于不可变的数据类型#xff0c;浅层拷贝时#xff0c;不会发生拷贝#xff0c;只是引用关系 对于可变数据类型#…对于浅层拷贝而言 不会发生拷贝的数据类型有number、str、tuple 会发生拷贝的数据类型有list、dict、set 对于不可变的数据类型浅层拷贝时不会发生拷贝只是引用关系 对于可变数据类型在浅拷贝时该数据本身会发生拷贝但是其中的所有元素都不会发生拷贝
import copy
list1 [991, abc, (9,993), [994,995], [888 ,887], {name: Tom}, (996 ,[997,998]), (888, (886,886) )]
list2 copy .copy(list1)
list1.append(9)
#浅拷贝
list1[3] [994]
list1[3].append(999)
print(id(list1) )
print(id(list2))对于深拷贝而言 不会发生拷贝的函数类型有number、str、tuple其中不包含可变的数据 会发生拷贝的函数类型有list、dict、set、tuple其中包含可变的数据 结论 1、对于可变的数据类型在深拷贝时会发生拷贝。 2、对于本身是不可变数据类型的但其中包含可变数据类型在深拷贝时仍发生拷贝。 3、对于被拷贝对象其中的元素是否发生拷贝可以使用1、2判定。
import copy
list1 [991, abc, (9,993), [994,995], [888 ,887], {name: Tom}, (996 ,[997,998]), (888, (886,886) )]
list2 copy .deepcopy(list1)
#深拷贝
print(id(list1) )
print(id(list2))赋值问题
●Python中变量定义和赋值必须是同时进行的比如当执行程序a999是先在内存中开辟一块空间来存放数据999然后定义变量名a来指向这块空间的内存地址方便我们使用变量值所以变量名和值其实是一种引用的关联关系。 ●严格来说变量名本身没有类型通常我们所说的变量类型指的是值的数据类型。
●为了节省内存空间解释器做了优化如果直接执行程序文件相同值的变量会引用自同一个对象而在交互式窗口运行则可以看到区别。 ●小整数对象池:Python为了优化速度避免整数频繁申请和销毁内存空间把范围在[-5,256]之间的数字放在提前建立好的小整数对象池里面不会被垃圾回收在这范围内的数值如果相等地址也就相同因为使用的都是同一个对象