关于python的列表小问题
>>> list5=>>> list4=list5
>>> list5.append(99)
>>> list5
>>> list4
>>> list5=
>>> list4=list5
>>> list5=
>>> list4
上述两段代码,为什么片段一中list4改变;而片段二中list4没改变!
新手求解答{:5_91:} >>>list5=
>>> list4=list5
一,这里的list4 list5指向 的是同一个地方(可以理解成2个标签贴在同一个商品上)
>>> list5=
>>> list4=list5
>>> list5=
二,这里的list4 list5指向 的本来是同一个地方(可以理解成2个标签贴在同一个商品上)
但是后面你把list5指向了这个地方。(可以理解成list5标签贴在另一个商品上了)
所以这里list4还是,而list5是
注:Python中 变量=变量 是指向同一个地方的;给变量赋值 才是新开辟个空间一个新的地址;想具体了解
可以参考这篇文章
http://blog.csdn.net/yugongpeng_blog/article/details/46604439 是的,您说的那种情况我可以理解。
不过这种情形
>>> list5=
>>> list4=list5
>>> list5.append(99)
>>> list5
>>> list4
list5进行修改后,也就是list5.append(99),list5的值改变,为什么此时list4的值也随之改变了。
按之前那种方式理解list4的值应该不变,仍然是呀!这是我疑惑的地方 视频里有讲的:Python的变量就像一个标签,一个名字而已,贴那是哪,指哪是哪
例如:
list11 =
list12 = list11[:]
list13 = list11
雨之痕迹 发表于 2017-8-11 17:09
视频里有讲的:Python的变量就像一个标签,一个名字而已,贴那是哪,指哪是哪
例如:
list11 =
不会变,你最后又给list5赋予新的值,但list4的值还是上一步的list51,并没有给list4赋予与list5一样的值,当然不一样,(除非你再list4 = list5) 爱学习的小fish 发表于 2017-8-4 22:37
是的,您说的那种情况我可以理解。
不过这种情形
你说得这种情况是list4和list5都指向列表所在的地址,当你用list5.append(99)修改时,只是将这个列表里的值改了,而他所在的地址还没变,所以list4所在的地址里的值也就变了,因为他俩指向同一个地址;
关键是append修改的是你当前的列表,而另一种方式是直接重新另开辟了一个地址让list5去指向;以上是我的理解 qlm0216 发表于 2017-8-11 18:04
你说得这种情况是list4和list5都指向列表所在的地址,当你用list5.append(99)修改时,只是将
赞同你的看法
页:
[1]