🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
>[success] # copy ~~~ 1.对于赋值运算来说,指向的是同一个内存地址,所以他们是完全一样的,改动一个其他都跟着改动 2.对于浅copy来说,第一层创建的是新的内存地址,而从第二层开始,指向的都是同一个内存地址,所以,对于第二层以及更深的层数来说,保持一致性。 3.对于深copy来说,两个是完全独立的,改变任意一个的任何元素(无论多少层),另一个绝对不改变。 ~~~ >[danger] ##### 赋值 ~~~ lis1 = ['2',['3', '4']] lis2 = lis1 lis1[0] = "8" lis1[1][0] = "9" print(lis1) print(lis2) 打印结果: ['8', ['9', '4']] ['8', ['9', '4']] ~~~ >[danger] ##### 浅拷贝copy。 ~~~ lis1 = ['2',['3', '4']] lis2= lis1.copy() lis1[0] = "8" lis1[1][0] = "9" print(lis1) print(lis2) 打印结果: ['8', ['9', '4']] ['2', ['9', '4']] ~~~ >[danger] ##### 深拷贝deepcopy。 ~~~ import copy lis1 = ['2',['3', '4']] lis2= copy.deepcopy(lis1) lis1[0] = "8" lis1[1][0] = "9" print(lis1) print(lis2) 打印结果: ['8', ['9', '4']] ['2', ['3', '4']] ~~~