擅长:python、mysql、java
<p>我不知道问题出在哪里,所以我试着用一般的方法来澄清。在</p>
<p>该算法通过获取第四个字段并将其放在行的前面来对行进行排序。然后内置的<code>sort()</code>将使用此字段进行排序。之后,原始行被恢复。在</p>
<p>空行或少于5个字段属于此结构的<code>else</code>部分:</p>
<pre><code>if len(lst) >= 4: # Tuple w/ sort info first
lines[n] = (lst[4], lines[n])
else: # Short lines to end
lines[n] = (['\377'], lines[n])
</code></pre>
<p>它将一个<code>['\377']</code>添加到要排序的列表的第一个字段中。该算法这样做是希望“\377”(ascii表中的最后一个字符)将比第5个字段中找到的任何字符串都大<em>。所以在进行排序时,原始行应该位于底部。在</p>
<p>我希望这能澄清问题。如果没有,也许你应该说明你想知道什么。在</p>
<p>同一算法的更好的通用版本:</p>
^{pr2}$
<p>您提供的算法与此算法等效。在</p>