鱼C论坛

 找回密码
 立即注册
查看: 1888|回复: 2

[已解决][课后作业] 第011讲:测试题5

[复制链接]
发表于 2019-11-6 11:24:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
list1 = [1, 3, 2, 9, 7, 8]
list2 = list1[:]
list3 = list1
list1.sort()
答案里说list3会随list1一起改变,那
a = 1
b = a
a =2
这样为啥b不会随着a变化呢?

我是零基础编程小白,请各位大佬见谅
最佳答案
2019-11-6 11:35:25
本帖最后由 jackz007 于 2019-11-6 11:45 编辑
list1 = [1, 3, 2, 9, 7, 8]        # list1 指向列表对象 [1, 3, 2, 9, 7, 8] 
list2 = list1[:]                  # list2 指向列表对象 [1, 3, 2, 9, 7, 8]  的副本,就是另外的一个和这个对象完全相同的新对象  
list3 = list1                     # list3 和 list1 指向同一个对象
list1.sort()                      # 使用列表方法对列表对象 list1 进行排序,由于 list3 与 list1 相等关系没有改变,所以,list3 会和 list1 一起发生改变。  
a = 1            # a 指向整数对象 1
b = a            # b 也指向整数对象 1,a、b 指向了同一个对象,所以,a == b。不能把 b = a 理解成变量 b 指向变量 a
a = 2            # a 指向新的整数对象 2,b 依然指向整数对象 1,所以,a != b
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-11-6 11:35:25 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jackz007 于 2019-11-6 11:45 编辑
list1 = [1, 3, 2, 9, 7, 8]        # list1 指向列表对象 [1, 3, 2, 9, 7, 8] 
list2 = list1[:]                  # list2 指向列表对象 [1, 3, 2, 9, 7, 8]  的副本,就是另外的一个和这个对象完全相同的新对象  
list3 = list1                     # list3 和 list1 指向同一个对象
list1.sort()                      # 使用列表方法对列表对象 list1 进行排序,由于 list3 与 list1 相等关系没有改变,所以,list3 会和 list1 一起发生改变。  
a = 1            # a 指向整数对象 1
b = a            # b 也指向整数对象 1,a、b 指向了同一个对象,所以,a == b。不能把 b = a 理解成变量 b 指向变量 a
a = 2            # a 指向新的整数对象 2,b 依然指向整数对象 1,所以,a != b
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-11-6 13:28:59 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 18:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表