0

我在 python 中尝试了这段代码,它运行良好:

listX.sort()
list1.sort()

result = listX + list1

但以下代码不起作用:

result = listX.sort() + list1.sort()

它给了我这个错误信息:

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

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

4

2 回答 2

5

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

result = sorted(listX) + sorted(list1)

那会做你想要的。

于 2013-02-19T00:46:33.547 回答
5

这是因为list.sort()返回None,所以你实际上是在做:

None + None

这甚至没有意义。

如果你想连接两个列表的排序元素,你可以这样做:

listA.sort()
listB.sort()
listC = listA + listB

或者,(推荐):

listC = sorted(listA) + sorted(listB)

和返回值sorted() 一样。

于 2013-02-19T00:47:29.770 回答