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))

 

结果:

python list复制_内存地址

 

 

------更新

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