我想排序二进制列表,它应该像这样工作:递归无法连接'int'和'NoneType' - 如何将'NoneType'更改为'int'?
>>> blsort([1, 0, 1])
[0, 1, 1]
所以我做了这个代码:
def blsort(L):
if L == []:
return []
elif L[0] == 0:
L.insert(0, 0)
else:
L.append(1)
return L[0] + blsort(L[1:])
但我只得到这个错误:
TypeError: unsupported operand type(s) for +: 'int' and 'NoneType'
所以不知何故,这段代码返回一个NoneType
,我不能连接int
到list
。
我假设blsort(L[1:])
是NoneType
类型。我能做些什么来使它的类型为int
,所以我可以将它与其他int
连接到list
?
你是不是在这里后,返回任何第二,如果条件'L.insert(0,0)' – AKS
你为什么不使用'list.sort()' ? – Aurel
我无法使用list.sort(),它是学校的一项任务,重点在于学习递归,因此不允许使用list.sort() – Manuel