擅长:python、mysql、java
<p><code>print package[0][1]</code>返回<code>0.5</code>的原因是它“作为一个整体”访问元组列表中的数字,而<code>sorted</code>则查看给定iterable的每个单独元素。在</p>
<p>您将<code>a</code>和{<cd5>}压缩到<code>package</code>:</p>
<pre><code>[([1, 6], [0.5]),
([3, 4], [0.8]),
([2, 5], [0.2])]
</code></pre>
<p>在这一点上你<code>print package[0][1]</code>。第一个元素是用<code>package[0]</code>=<code>([1, 6], [0.5])</code>获得的。下一个索引<code>[1]</code>给出了第一个元组的<em>第二个元素</em>,因此得到了<code>0.5</code>。在</p>
<p>考虑到<code>sorted</code>,函数正在检查iterable的元素,<em>单独地</em>。它可能首先查看<code>([1, 6], [0.5])</code>,然后<code>([3, 4], [0.8])</code>,依此类推。在</p>
<p>因此,当您使用<code>lambda</code>函数指定一个键时,对于iterable的这个特定元素,获得位于<code>[0][1]</code>的值。也就是说,按给定元组的第一个元素的第二个值排序(<code>a</code>的第二个值)。在</p>