数组列表分片疑问
list1 =list2 = list1
list1 =
print(list2)
list1.sort()
print(list2)
print(list1)
这里为什么list2 = list1 并且 list1 已经重新指定为 6 5 4后第一次输出是 3 2 1 但是在sort后 list2再次输出还是 3 2 1?? 不是应该跟随list1变为4 5 6? list1 =
list2 = list1
print(list2)
list1 = [ 4,5,6]
print(list2)
这一段我预期是第一次输出321 第二次输出456 ,但两次都输出321 jcpython2 发表于 2022-5-14 17:20
这一段我预期是第一次输出321 第二次输出456 ,但两次都输出321
这里可以这样理解:
list1 和 list2都是一个标签,此时将 list1 标签贴在了列表 上,即这段代码:
list1 =
然后我们将 list2 标签贴在 list1 标签所在的列表上 ,即代码:
list2 = list1
这个时候我们打印 list2 ,输出结果毋庸置疑:
接下来继续看下面的代码:
此时 list 2 和 list1 标签都贴在 列表上,将 list1 的标签重新贴在另一个列表 list2 上:
list1 = [ 4,5,6]
最后再次打印 list2,因为 list2 还是贴在 这个列表上所以还是打印该列表,最终两次打印的结果都为
Twilight6 发表于 2022-5-14 17:28
这里可以这样理解:
list1 和 list2都是一个标签,此时将 list1 标签贴在了列表 上, ...
前面的 sort() 是对 list1 进行排序,自然不影响 list2 ,因为 list2 还是指向列表
Twilight6 发表于 2022-5-14 17:28
这里可以这样理解:
list1 和 list2都是一个标签,此时将 list1 标签贴在了列表 上, ...
list2 = list1 后是list2贴上身上,而不是list1身上,并且是独立的,当list1或list2用sort排序后,数组就变动,让list1 list2 输出结果也变动
如果要把list2的数值独立出来,就用 list2 = list1[:]对吧
我本来错的地方在于 以为list2 贴在list1身上,应该是list1 list2都贴在才对
这样理解没错了吧? jcpython2 发表于 2022-5-14 23:57
list2 = list1 后是list2贴上身上,而不是list1身上,并且是独立的,当list1或list2用sort ...
是的
页:
[1]