马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
0. 注意,这道题跟上节课的那道题有点儿不同,回答完请上机实验或参考答案。
>>> old = [1, 2, 3, 4, 5]
>>> new = old
>>> old = [6]
>>> print(new)
复制代码
然后自己试了下:
new= [1, 2, 3, 4, 5]
这是不是与上节课的相矛盾:
list1 = [1, 3, 2, 9, 7, 8]
list3 = list1
list3
[1, 3, 2, 9, 7, 8]
list1.sort()
>>> list1
[1, 2, 3, 7, 8, 9]
>>> list3
[1, 2, 3, 7, 8, 9]
- old = [1, 2, 3, 4, 5] # 变量 old 指向列表对象 [1, 2, 3, 4, 5]
- new = old # 变量 new 和 old 一同指向列表对象 [1, 2, 3, 4, 5]
- old = [6] # 变量 old 指向另外的一个列表对象 [6],old 和 new 就此分道扬镳。
- list1 = [1, 3, 2, 9, 7, 8] # 变量 list1 指向列表对象 [1, 3, 2, 9, 7, 8]
- list3 = list1 # 变量 list3 和 list1 一同指向列表对象 [1, 3, 2, 9, 7, 8]
- list1 . sort() # 列表对象 [1, 3, 2, 9, 7, 8] 内部元素重新排序
- # list1 和 list3 依然指向排过序的列表 [1 , 2 , 3 , 7 , 8 , 9]
复制代码
前面的例子 old 和 new 在指向同一个列表对象后,old 又通过赋值指向新的列表对象,而后面的例子 list1 和 list3 在指向同一个列表对象后,并没有重新赋值操作,所以,他们始终指向同一个对象,只不过这个对象被重新排了序而已。
|