pythonlearner12 发表于 2019-10-28 23:40:08

关于第十二讲的第0题

0. 注意,这道题跟上节课的那道题有点儿不同,回答完请上机实验或参考答案。
>>> old =
>>> new = old
>>> old =
>>> print(new)
复制代码

然后自己试了下:
new=

这是不是与上节课的相矛盾:
list1 =
list3 = list1
list3

list1.sort()
>>> list1

>>> list3

雾溟潇湘 发表于 2019-10-29 00:50:55

没有啊,没有矛盾,你这个是在讲old1赋值给new后又另定义的old2,old2与new并没有关系,所以会输出old1,你看下第10讲的动动手的第1 题,那道题就能解决你的疑问

heidern0612 发表于 2019-10-29 07:51:47

你只是重新赋值了old,new在old重新赋值之后还是没变化,还是最先赋值的

python万 发表于 2019-10-29 10:49:49

old =
new =
old =
print(new)#new =
你可以在每一步下面都print(new,old),看一下他们的值就明白了

jackz007 发表于 2019-10-29 14:43:13

old =       # 变量 old 指向列表对象
new = old                  # 变量 new 和 old 一同指向列表对象
old =                   # 变量 old 指向另外的一个列表对象 ,old 和 new 就此分道扬镳。

list1 =    # 变量 list1 指向列表对象
list3 = list1                # 变量 list3 和 list1 一同指向列表对象
list1 . sort()               # 列表对象 内部元素重新排序
                           # list1 和 list3 依然指向排过序的列表

       前面的例子 old 和 new 在指向同一个列表对象后,old 又通过赋值指向新的列表对象,而后面的例子 list1 和 list3 在指向同一个列表对象后,并没有重新赋值操作,所以,他们始终指向同一个对象,只不过这个对象被重新排了序而已。

小香蕉2009 发表于 2019-10-29 18:09:28

old = 是被重新赋值了,而new没有被重新赋值,所以new =
list1.sort()只是重新排序了,不是赋值了。所以list3 =
以上两种情况不同
页: [1]
查看完整版本: 关于第十二讲的第0题