【Python】列表复制
2021年 11月 04 日

子弹

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) 则可以复制整个列表。

【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) 则可以复制整个列表。

版权属于:子弹 所有,采用《知识共享署名许可协议》进行许可,转载请注明文章来源。

本文链接: https://www.tridagger.com/archives/29/

赞 (2)

评论区(暂无评论)

这里空空如也,快来评论吧~

我要评论