为什么lista.sort()+ listb.sort()在python中不起作用?

Ali*_*_IT 0 python sorting list

我在python中尝试了这个代码,它完美地工作:

listX.sort()
list1.sort()

result = listX + list1
Run Code Online (Sandbox Code Playgroud)

但以下代码不起作用:

result = listX.sort() + list1.sort()
Run Code Online (Sandbox Code Playgroud)

它给了我这个错误信息:

TypeError: unsupported operand type(s) for +: 'NoneType' and 'NoneType'
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?谢谢!

wim*_*wim 5

因为该list.sort方法在列表上运行,返回None.相反,sorted是一个内置函数,它确实返回已排序的输出.

result = sorted(listX) + sorted(list1)
Run Code Online (Sandbox Code Playgroud)

这会做你想要的.


Joe*_*ett 5

这是因为list.sort()退货None,所以你有效地做了:

None + None
Run Code Online (Sandbox Code Playgroud)

这甚至没有意义.

如果要连接两个列表的已排序元素,可以执行以下操作:

listA.sort()
listB.sort()
listC = listA + listB
Run Code Online (Sandbox Code Playgroud)

或者,(推荐):

listC = sorted(listA) + sorted(listB)
Run Code Online (Sandbox Code Playgroud)

sorted() 确实返回一个值.