课程
/后端开发
/Python
/初识Python
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???
2017-11-27
源自:初识Python 4-9
正在回答
我自己也有这个疑问,我自己试了试,赋值给新变量的时候,无论几个,无论改谁,所有的都跟着改变。
个人猜测
可能新变量只是存了一个首地址。list变量只是用list的起始地址来表示。并没有重新开辟内存,完整复制一份新的。所以才会出来这个效果。
t = ('a', 'b', ['A', 'B']) L = t[2] L[0]='X' L[1]='Y' print t
举报
学python入门视频教程,让你快速入门并能编写简单的Python程序