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

为何不需要把L赋值给t[2]?

L = t[2]是为L赋值,其中并未出现语句t[2]=L, 也就是说,并未将L赋值给t[2],那为何其后更改L能使t[2]也发生改变呢?

正在回答

3 回答

'='不是传值, 传的是变量的地址。L = (2,3,4) 的意思是把(2,3,4)的地址传给L,再往下你就看懂了

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

人民军大将4089505 提问者

非常感谢!
2016-10-09 回复 有任何疑惑可以回复我~
L = t[2]

然后L和t[2]  指向同一个list, 所以L变了,t[2]也就是L也变了

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

L=t[2],是把L指向t[2]所指向的值,改变L,就是改变了L所指向的值,因为t[2]指向的地方跟L一样,所以t[2]也发生变化了

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

人民军大将4089505 提问者

那为何 L= (2,3,4) >>> T=L >>> L=(2,3) >>> print T T=(2,3,4) 这段代码是这样的呢?
2016-09-30 回复 有任何疑惑可以回复我~
#2

人民军大将4089505 提问者

那为何 L= (2,3,4) >>> T=L >>> L=(2,3) >>> print T T=(2,3,4) 这段代码是这样的呢?
2016-09-30 回复 有任何疑惑可以回复我~
#3

Daisykar 回复 人民军大将4089505 提问者

我验证了下,你的一开始的问题是错的吧,我发现t[2]并没有变化。 t=(1,2,3) L=t[2] print L #3 L=22 print t[2] #3
2016-09-30 回复 有任何疑惑可以回复我~
#4

人民军大将4089505 提问者 回复 Daisykar

不不,t[2]是个数列,这是课程中的一个问题,原代码是 t = ('a', 'b', ['A', 'B']) L = t[2] L[0] = 'X' L[1] = 'Y' print t ('a', 'b', ['X', 'Y'])
2016-09-30 回复 有任何疑惑可以回复我~
#5

taboo0 回复 人民军大将4089505 提问者

我也有疑问,不过找到了说明 https://my.oschina.net/leejun2005/blog/145911 python中的=不是赋值,而是引用
2016-10-19 回复 有任何疑惑可以回复我~
查看2条回复

举报

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

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

进入课程

为何不需要把L赋值给t[2]?

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