为什么是lista.sort()+;sort()不';你不能用python吗?

为什么是lista.sort()+;sort()不';你不能用python吗?,python,list,sorting,Python,List,Sorting,我在python中尝试了这段代码,效果非常好: listX.sort() list1.sort() result = listX + list1 但以下代码不起作用: result = listX.sort() + list1.sort() 它向我提供了以下错误消息: TypeError: unsupported operand type(s) for +: 'NoneType' and 'NoneType' 我怎样才能解决这个问题?谢谢 因为list.sort方法对列表进行操作,返回N

我在python中尝试了这段代码,效果非常好:

listX.sort()
list1.sort()

result = listX + list1
但以下代码不起作用:

result = listX.sort() + list1.sort()
它向我提供了以下错误消息:

TypeError: unsupported operand type(s) for +: 'NoneType' and 'NoneType'

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

因为
list.sort
方法对列表进行操作,返回
None
。相反,
sorted
是一个内置函数,它返回排序后的输出

result = sorted(listX) + sorted(list1)

这将满足您的需要。

这是因为
list.sort()
返回
None
,因此您可以有效地执行以下操作:

None + None
这根本没有道理

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

listA.sort()
listB.sort()
listC = listA + listB
或(推荐):


因为
sorted()
确实返回了一个值。

我注意到我基本上重复了你的答案,所以我用wiki搜索了我的答案+1这对我来说没什么意义,但是。。。好的嗯,是的,现在我想起来了。。。没有。哦,好吧,除了作为一个dup之外,Python常见问题解答中也回答了这一点(这甚至解释了Python为什么是这样设计的)。
listC = sorted(listA) + sorted(listB)