擅长:python、mysql、java
<p><code>list.sort</code>对列表进行排序并返回<code>None</code>。这是一个常见的python约定,如果操作已经就绪,python<em>通常返回<code>None</code>。所以,你的代码应该是:</p>
<pre><code>duplicate = thelist[:]
duplicate.sort() # Note, no assignment
return duplicate
</code></pre>
<p>或者,您可以使用<code>sorted</code>:</p>
<pre><code>return sorted(thelist)
</code></pre>
<p>既然<code>sorted</code>已经返回了一个排序过的副本,那么您应该都很好(附带的好处是支持任意的iterables,而不是简单的列表…)</p>
<p><sup>注意这里有一个轻微的命名约定。像<code>sort</code>、<code>reverse</code>这样的动词通常在有意义的时候就在适当的位置操作,像<code>sorted</code>或<code>reversed</code>这样的动词会复制。我并不是说这个惯例无处不在,但它确实存在,至少在内置系统中是如此…</sup></p>