【Python】列表复制
import copy
a = [[1,2,3],1]
b = a
c = list(a)
# list(a), a[::], copy.cpoy(a) 效果一样
d = copy.deepcopy(a)
a[1] = 2
a[0][0] = 5
print(a, id(a), id(a[0]))
print(b, id(b), id(b[0]))
print(c, id(c), id(c[0]))
print(d, id(d), id(d[0]))
<!--more-->
输出:
[[5, 2, 3], 2] 2587165658752 2587165727680
[[5, 2, 3], 2] 2587165658752 2587165727680
[[5, 2, 3], 1] 2587162722240 2587165727680
[[1, 2, 3], 1] 2587165747392 2587165747456
总结
list(a), a[::], copy.cpoy(a) 只能复制第一层列表,copy.deepcopy(a) 则可以复制整个列表。
评论区(暂无评论)