擅长:python、mysql、java
<p>这段代码可能使用了<code>cmp</code>参数来表示<code>sort</code>,现在已经没有了。不能只使用相同的<code>lamdba</code>。<code>key</code>函数只能接受一个参数。你知道吗</p>
<p>有一种方法可以盲目地转换代码:使用<a href="https://docs.python.org/3/library/functools.html#functools.cmp_to_key" rel="nofollow noreferrer">^{<cd5>}</a>。不过,我认为在这种情况下,提供适当的键功能更容易:</p>
<pre><code>output.sort(key=lambda s: input.find(s))
</code></pre>
<p>也可以简单地写为:</p>
<pre><code>output.sort(key=input.find)
</code></pre>
<p>表达式<code>a - b</code>在<code>a < b</code>时返回负值,在<code>a == b</code>时返回<code>0</code>,在<code>a > b</code>时返回正值。这意味着您的代码将根据它包含的元素在<code>input</code>中的位置对<code>output</code>进行排序。你知道吗</p>
<p>所以<code>key</code>函数只是查找子串在<code>input</code>中的位置。你知道吗</p>
<hr/>
<p>要使用<code>cmp_to_key</code>,您可以这样做:</p>
<pre><code>from functools import cmp_to_key
output.sort(key=cmp_to_key(lambda s1, s2: input.find(s1) - input.find(s2)))
</code></pre>