为了账号安全,请及时绑定邮箱和手机立即绑定

为什么将例子中的L[0]='X' L[1]='Y'改成L=['X','Y']后t并不会变,但L变了??是因为此时的L不再指t指向的列表了吗?

t=('a','b',['A','B'])

L=t[2]

L=['X','Y']

print(t)

正在回答

4 回答

t=('a','b',['A','B'])

L=t[2]

L=['X','Y']

t=('a','b',L)

print t

这样就可以运行出来了,再把赋值的L搬回去

0 回复 有任何疑惑可以回复我~

你改的是被tuple赋值的L的值,tuple的值并不能被修改,如果你写的是t[2][0]='X'应该就会变了,我觉得

0 回复 有任何疑惑可以回复我~
#1

慕仔6364323

你试了么,我怎么改变不了呢
2017-06-22 回复 有任何疑惑可以回复我~

L=['X','Y'] 相当于重新创建了一个变量,只是值相等而已,内存地址已经变了,t原来数组指向的地址自然就变了

0 回复 有任何疑惑可以回复我~

L=['X','Y']可以解释为:第一步,在内存中创建list,也就是创建['X','Y']。第二步:在内存中创建L变量,并把它指向['X','Y']。所以也像你说的,变量L已经不是指向t[2]了。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
初识Python
  • 参与学习       758620    人
  • 解答问题       8667    个

学python入门视频教程,让你快速入门并能编写简单的Python程序

进入课程

为什么将例子中的L[0]='X' L[1]='Y'改成L=['X','Y']后t并不会变,但L变了??是因为此时的L不再指t指向的列表了吗?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信