12讲列表第0题
题目如下:old =
new = old
old =
print(new)
为什么不是6而是?
按照11讲的答案来讲:
list1 =
list2 = list1[:]
list3 = list1
list1.sort()
list2 =
list3 =
new不应该跟随old变化吗? 本帖最后由 李金龙 于 2017-6-9 17:04 编辑
http://bbs.fishc.com/forum.php?m ... 742&page=1#pid11009先看这个
old =
new = old#
old = # 难道还要劳资再往上面怕?程序都是向下执行的
print(new)
list1 =
list2 = list1[:]# 拷贝list1的结果
list3 = list1# 赋值list1的结果
list1.sort()
list2 =
list3 =
old =是将old指向一个新的列表,new仍然指向那个列表,而list1.sort()是将list1本身进行排序 我说一下吧!!!
new,old都是变量名。但是python里很少有人提变量名这个概念,一般都说是名字。这是因为一个数据可以有多个变量名,就像人可以有几个名字一样。
old = 表面上是将赋值给old,其实是给起了叫old名字。就像给刚出生的孩子起了个名字,他才有了户口。
new = old就是给old所属的数据又起了个别名。就像给刚出生的孩子起了个名字后,又起了个小名。print(new)就会出现
old = ,这里要注意两点。首先,我们可以直接用=重新定义变量名背后的数据。但是=不能改变原有的数据(只要这个数据还有名字。一旦没有了名字,系统就不会承认这个数据,会将其回收。就像人没有了名字,就无法精确定义这个人。)其次,在一个作用域内一个变量名只能对应一个数据。
虽然old这个名字已经不再是属于,但还有个别名,所以这个数据还被保留。
李金龙 发表于 2017-6-9 16:58
http://bbs.fishc.com/forum.php?m ... 742&page=1#pid11009先看这个
你的建议很好!你解题举的例子也很好!但是新人肯定很难理解什么是分片什么是赋值。因为他不懂得应该是名字是怎么一回事。其实你要是愿意多做分析,应该能给予更多帮助。这是我个人的看法。 Messj 发表于 2017-6-9 21:33
你的建议很好!你解题举的例子也很好!但是新人肯定很难理解什么是分片什么是赋值。因为他不懂得应该是名 ...
看了半天,我以为你是提问的人,没想到是回复的人。
可能每个人的回答思路是不一样的,上面的那个内容视频中很详细的讲过,所以有个问题,就是对视频的理解多少。
现在我的习惯是,让别人给到我一些关键词下来,我去百度或谷歌大量的去查找内容,并做好笔记,所以就变成我给出的回答,也会很简单。
如果一步一步教着做,对不起,你不适合编程,因为bug遇到的数量,远比你学习要解决的问题的多很多,且难很多,所以可以求助,但不能停留在求助,要能根据答案,找出你所接受的结果。
最后感谢你的建议。 李金龙 发表于 2017-6-9 22:05
看了半天,我以为你是提问的人,没想到是回复的人。
可能每个人的回答思路是不一样的,上面的那个内容 ...
嗯,没事。个人小意见,其实很多人的问题都很简单,但有些就很有趣。仔细想想背后的原理感觉是不错的体验{:5_91:}
页:
[1]