<p>我有这个函数<code>gensort</code>和<code>remAll</code>:</p>
<pre><code>def gensort(L):
""" Sorts list L in ascending order
"""
if len(L) == 0:
return 0
else:
z = min(L)
L = remAll(z, L)
return [z] + gensort(L)
def remAll( e, L ):
""" Helper function for gensort(), removes all e in L.
"""
if len(L) == 0:
return L
elif L[0] != e:
return L[0:1] + remAll(e,L[1:])
else:
return remAll(e,L[1:])
</code></pre>
<p>当我运行<code>gensort</code>时,我得到一个错误</p>
<blockquote>
<p>can only concatenate list (not 'int') to list. </p>
</blockquote>
<p><code>remAll</code>工作正常。如果我试图创建一个空列表来添加<code>z</code>,我会得到一个不同的错误。在</p>
<p>您的错误源于基本情况检查,其中<code>return 0</code>。把空名单还给我就行了</p>
<p>如果没有特殊原因在你的删除函数中使用递归,我可以建议你吗</p>
<pre><code>def remAll(e, L):
return [x for x in L if x != e]
</code></pre>
<p>另外,这种排序方法可以删除重复项。在</p>