python的list拷贝

有三种情况

第一种:赋值(不是拷贝)

a=[1,2,3]

b=a

这种不是拷贝,a和b是一个变量,内存是一个

 

第二种:浅拷贝

a=[1,2,3,[4,5,6]]

b=a

b的第一层是独立的,第二层会更跟着a变

a=[1,2,[3,4],5,6]
b=a.copy()
a[0]=9
a[2][1]=8
print(a)
print(b)

输出

[9, 2, [3, 8], 5, 6]
[1, 2, [3, 8], 5, 6]

浅拷贝的第二种方式     b=a[:]

 

 

第三种 深拷贝

b的所有层都是独立的

import copy
a=[1,2,[3,4],5,6]
b=copy.deepcopy(a)
a[0]=9
a[2][1]=8
print(a)
print(b)

输出

[9, 2, [3, 8], 5, 6]
[1, 2, [3, 4], 5, 6]

 

posted @ 2019-07-09 17:20  金一九  阅读(148)  评论(0)    收藏  举报