append
x = [1, 2, 3]
y = []
y.APPend(x)
x.append(9)
y.append(x)
print(y)
期望结果是 [[1, 2, 3], [1, 2, 3, 9]]
实际的输出结果是 [[1, 2, 3, 9], [1, 2, 3, 9]]
出现这种的原因是:
当list类型的对象进行append操作时,实际上追加的是该对象的引用。
扩展的时候,并没有进行拷贝,仅仅是作为了引用,称作浅拷贝。
如果id(x),和 id(y[0]) 会发现它们的地址其实是一样的。
如果想要得到预期的结果,需要进行深拷贝:
import copy
x = [1, 2, 3]
y = []
y.append(copy.deepcopy(x))
x.append(9)
y.append(copy.deepcopy(x))
print(y)
此时结果就是, [[1, 2, 3], [1, 2, 3, 9]] 相关阅读
Math.pow(底数,几次方)如:int a=3; int b=3; int c=Math.pow(a,b); 就是3的三次方是多少; c最终为27; 基础用
从TrackPopupMenu(创建快捷菜单的函数)看菜单消息路由机
先摘段《vc++深入详解》孙鑫的话以上讲的是点击主菜单时的消息路由过程,但鼠标右键快捷菜单的消息路由有点区别。TrackPopupMenu函
3.1序列简介• 数据结构是通过某种方式组织在一起的元素的集合。• 容器(Container)是一种Python的数据结构,基本上是包含
前言 对于平时出行大多数人都是选择坐高铁,当然了如果这是对于距离比较近的行程是最划算的,如果对于路途长远的人言,提前购买飞机票
转的一篇,整理的很全了,转需及自用 原文:https://blog.csdn.net/weixin_42209553/article/details/84074840 正文: 格式:库,名称,简介 C