lang_mumo 2017-11-26 08:02 采纳率: 0%
浏览 1341
已采纳

python中的copy和deepcopy问题

import copy
a = [1, 2, 3, 4, ['a', 'b']]
b = a
c = copy.copy(a)
d = copy.deepcopy(a)
a.append(5)
a[4].append('c')
print a
print b
print c
print d

输出结果为:
[1, 2, 3, 4, ['a', 'b', 'c'], 5]
[1, 2, 3, 4, ['a', 'b', 'c'], 5]
[1, 2, 3, 4, ['a', 'b', 'c']]
[1, 2, 3, 4, ['a', 'b']]

这里里面的c为什么没有5呀   
  • 写回答

1条回答 默认 最新

  • a81836620 2017-11-26 08:16
    关注

    copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象。 所以子对象还是用的原来的空间,所以a的子对象a[4]改编后c中跟着改变,但a本身改变c不改变
    copy.deepcopy 深拷贝 拷贝对象及其子对象

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 11月19日

悬赏问题

  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 有没有帮写代码做实验仿真的
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥30 vmware exsi重置后登不上
  • ¥15 易盾点选的cb参数怎么解啊
  • ¥15 MATLAB运行显示错误,如何解决?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题