关于python list,一个不合理的问题,

x=[7,2]y=xy[0]=9y[1]=5print(x)打印结果为[9,5],我不知道为什么不是[7,2],因为我仅对y进行改动求大神解释... x=[7,2]
y=x
y[0]=9
y[1]=5
print(x)
打印结果为[9,5],我不知道为什么不是[7,2],因为我仅对y进行改动
求大神解释
展开
 我来答
WM_THU
推荐于2016-02-03 · TA获得超过7164个赞
知道大有可为答主
回答量:4285
采纳率:80%
帮助的人:3941万
展开全部
y=x

关键是对这一步的理解。python中指向对象(比如list)的变量其实是”引用“,就像Java中一样。
所以,y = x 只是让y和x指向同一个对象,修改y等效于修改x。
如果要”深复制“,即新创建一个list对象,只是其内容与x指向的对象相同,要显式调用构造函数:
y = list(x)
这时再修改y就不会影响x了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式