|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 孙忘 于 2017-8-25 23:01 编辑
课后习题里
list1 = [1, 3, 2, 9, 7, 8]
list3 = list1
list1=list1.sort()
print(list3)
[1,2,3,7,8,9] #list3跟随list1进行变化
和
list1 = [1, 3, 2, 9, 7, 8]
list3 = list1
list1=[6]
print(list3)
[1,3,2,9,7,8] #list3未跟随list1进行变化
搞不明白 同样都是给 list3 赋予 list1 的值 结果变化趋势不一样? 3不都应该是跟着1变化么 又不是另起炉灶 能否帮忙解惑 谢谢
先说一下,你上面那段代码中,
第一行 和 第三行 list1 是不一样的。sort()方法是没有返回值的。它只是修改了原列表。
而list3它一直都是引用原列表的。你可以通过id()查看。这个空间地址没变。
第二段中,
第三行,你要先理解 list1 = [6] 和 list1[0] = [6] 的区别,就清楚了。
其实你这两段代码的区别,只有sort方法。这个方法是修改【源】,没有返回值。
|
|