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

为什么是t赋值给L,改变L的值会改变t的值呢?

t = ('a', 'b', ['A', 'B']) L = t[2] L[0]='X' L[1]='Y' print t 运行结果:('a', 'b', ['X', 'Y']) 为什么是t赋值给L,改变L的值会改变t的值呢?

难道t(2)指向的不是['A','B']??而是指向了L???

正在回答

2 回答

我自己也有这个疑问,我自己试了试,赋值给新变量的时候,无论几个,无论改谁,所有的都跟着改变。

个人猜测

可能新变量只是存了一个首地址。list变量只是用list的起始地址来表示。并没有重新开辟内存,完整复制一份新的。所以才会出来这个效果。

0 回复 有任何疑惑可以回复我~
t = ('a', 'b', ['A', 'B'])
L = t[2]
L[0]='X'
L[1]='Y'
print t


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

举报

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

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

进入课程

为什么是t赋值给L,改变L的值会改变t的值呢?

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