sortedlist= [2,4,1,6]
sortedlist.sort()
sortedlistcopy = sortedlist
print(sortedlistcopy)
[1, 2, 4, 6]
sortedlist= [2,4,1,6]
sortedlistcopy = sortedlist.sort()
sortedlistcopy
type(sortedlistcopy)
NoneType
-------某教材上说,“You can sort a list in place (without creating a new object) by calling its sort function”。
直是不敲不知道。上面两小段代码表明,对列表 sortedlist,sortedlist.sort() 可以,直接 sortedlistcopy = sortedlist.sort() 不可以。
请问,这有意思么?
参考网友的问题及回复,已弄明白。分享如下:
----因为sort()表示整理该列表,返回None,sorted表示返回整理后的列表
B.sort()相当于B=sorted(B)
如果你一定要用sort,就先B.sort()再return B
-----a.sort()是无返回值的
print(a)
sort()函数是列表的方法,不是python内置函数,list.sort()
sorted()是内置函数,有返回值
【以下回答由 GPT 生成】
这个问题的含义是,sort()
方法是对原列表进行排序并且没有返回任何值,即返回值为None
。因此将sortedlist.sort()
赋值给sortedlistcopy
实际上是将None
赋值给了sortedlistcopy
,并不是将排序后的列表赋值给sortedlistcopy
。
解决这个问题的方法是,在排序后,通过使用切片操作将排序后的列表赋值给sortedlistcopy
。
下面是修正后的代码:
sortedlist = [2, 4, 1, 6]
sortedlist.sort()
sortedlistcopy = sortedlist[:]
print(sortedlistcopy)
输出结果为:[1, 2, 4, 6]