python 变量赋值的入门问题

见图,问题在注释中... 见图,问题在注释中 展开
 我来答
H_L_D_V
2016-06-16 · TA获得超过173个赞
知道答主
回答量:34
采纳率:100%
帮助的人:41.6万
展开全部
先解释第三行中中括号。
python的语法里面,中括号可以表示index。t[1] 就表示 t 这个 list 的第一项。

再解释 int 和 list 变量赋值的问题。
第三行中,l=t[1],意思就是给 t 这个 list 的第一项起了个别名叫做 l。
这就好比给张三起了个名字叫小明,下文里不论提到张三还是小明,说的都是同一个人。
那么在第四行里 l[0]='d' 其实就等价于 t[1][0] = 'd',相当于改变了list的内容。
这在编程里叫做aliasing,python 的 list 都是有aliasing的,但是 int (整数)没有。
所以,在第二段中,把 x 放到 m 这个 list 里的时候,只是拷贝进去了一个数值,从此以后和 x 不再有关联了。 这就好比做了个张三的克隆人,那个克隆人后来怎样,跟张三都没什么关系了。
第15-18行也是一样的道理。
如果,把那几行改为a=[4]; b=a; b[0]=5; print a; 这时就会打出5来了。
综上所述,造成第一段和第二段区别的主要原因就是它们涉及的数据类型不同,list = 起别名, int =克隆人。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式