擅长:python、mysql、java
<p>否,<code>sorted</code>创建一个新列表。在</p>
<p>所以你发布的代码没有意义。在</p>
<blockquote>
<p>Does the first line actually change <code>self.markers2nreads.items()</code> in any way?</p>
</blockquote>
<p>它不能改变,因为你有一个列表理解来使用它。在</p>
<p>注意事项:</p>
<ul>
<li>将列表传递给<code>sorted</code>是没有意义的。<code>sorted(((self.markers2lens[m],n) for m,n in self.markers2nreads.items()),key = lambda x: x[1])</code>使用生成器效率更高,没有临时列表。在</li>
<li>您应该使用<code>dict.iteritems()</code>,因为<code>dict.items()</code>也会创建一个不需要的列表。在</li>
</ul>
<p>要对列表进行适当排序,需要执行以下操作:</p>
<pre><code>_list = [(self.markers2lens[m], n) for m, n in self.markers2nreads.iteritems()]
_list.sort(key=lambda x: x[1])
</code></pre>