您的位置:首页 > 编程语言 > Python开发

python list拷贝问题

2017-06-24 11:46 281 查看

问题:

首先看下面例子:

count_a = [2,3,5,6]

count_b = count_a

count_b.append('a')

# 打印 count_a
print count_a


代码中,列表a赋值给列表b, 接着对列表b末尾附件一个元素,最后打印列表a

output:

[2, 3, 5, 6, ‘a’]

对列表b的操作,在列表a上也生效了。

原因:

列表b和列表a指向同一块内存,对其中任何一个修改,两个都会生效。

那有没有办法实现,对列表b的操作不影响列表a呢?

请看下面的深拷贝。

深拷贝

import copy

count_a = [2,3,5,6]

count_b = copy.deepcopy(count_a)

count_b.append('a')

print count_a


列表b通过深拷贝,获得一块新的内存地址,后续对列表b的操作就不会影响到列表a。

output:

[2, 3, 5, 6]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: