关于程序执行顺序问题
>>>list 1=
>>>list 3=list 1
>>>list 1.sort()
>>>list 3
list 3只执行把list 1的原列表赋值给它,而把list 1列表排序是在后一步执行的,list 3只赋值的是原列表,为什么最后执行出来却是排序后的列表,跪求大神解答 “list 3只执行把list 1的原列表赋值给它”这句话理解是错的
应该理解为将名为list3的标签贴在了上
此时list1和list3指向的是同一个列表
我们可以通过打印他们的ID来查看
>>> list1 =
>>> list3 = list1
>>> id(list1)
43010056
>>> id(list3)
43010056
改变了本身之后,所有指向它的标签都会跟随它而改变
所以他们都是原列表,不存在新旧
如果你只是想copy一份
可以使用切片的方式
>>> list1 =
>>> list3 = list1[:]#切片
>>> list1.sort()
>>> print(list1)
>>> print(list3)
逃兵 发表于 2021-6-30 08:28
“list 3只执行把list 1的原列表赋值给它”这句话理解是错的
真的很好奇 变量名应该不支持空格的
>>>list 1=
>>>list 3=list 1
>>>list 1.sort()
>>>list 3
于是乎测试了一下,结果真的 ??? wp231957 发表于 2021-6-30 15:37
真的很好奇 变量名应该不支持空格的
>>>list 1=
>>>list 3=list 1
不行
页:
[1]