T = (1, 'CH', [3, 4]) L = T[2] # 第二行“=”能够把L和T[2]联系起来吗 print(L) # ==> [3, 4] # 尝试替换L中的元素 L[1] = 40 print(L) # ==> [3, 40] print(T) # ==> (1, 'CH', [3, 40])
看起来Python对变量之间的赋值规则和C/java之类的不太一样,这个赋值规则更像是给双方建立一个联系,而且这个联系是双向的,任何一方的改变都会导致另一方发生同样的改变,不像C之类的语言里,双方仅仅在赋值这个语句执行时产生联系,以上是我个人的推测,如果有误,还请指正
L和T[2]指向的是同一个内存地址,操作的都是同一个内存地址里面的数据。举个不是很恰当的例子:手机端微信和电脑端微信登录的同一个微信账号,手机端发送了消息,电脑端的消息也会同步!
L = T[2] #这个只是给L赋值吧 为什么改变L会直接把T[2]直接给改了?
为什么不可以呢
你这输出结果不是已经验证了么