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 a]

 

相关文章:

  • 2021-09-28
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-03-06
  • 2022-12-23
  • 2022-12-23
  • 2021-07-13
猜你喜欢
  • 2021-06-13
  • 2021-10-29
  • 2021-10-14
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案