1.使用 a = b , a的值修改后,b的值也跟着变动,实际a和b指向同一个内存地址
2.使用a.copy() ,a的值修改后,b的值不会跟着变动,实际a和b指向不同的内存地址
1 a = [1,2,3,4] 2 3 b = a 4 c = a.copy() 5 print('a:',a,id(a)) 6 print('b:',b,id(b)) 7 print('c:',c,id(c)) 8 9 a.pop(2) 10 11 print('a:',a,id(a)) 12 print('b:',b,id(b)) 13 print('c:',c,id(c))
结果:
------更新
3.如果a是多层列表,a.copy() 第一层是深拷贝,及指向不同的内存地址
第二层是浅拷贝,指向同一个地址
4.多层列表的复制可使用
1 1.使用copy 2 import copy 3 b = copy.deepcopy(a) 4 5 2.重新生成 6 b=[[*i] for i in a]