擅长:python、mysql、java
<p>Alex提到的关键提取器非常简单,可以放入lambda函数</p>
<pre><code>>>> array = ['ca', 'bd', 'ac', 'ab']
>>> order = ['a', 'b', 'c', 'd']
>>> sorted(array, key=lambda v:map(order.index,v))
['ab', 'ac', 'bd', 'ca']
>>> order = ['b', 'a', 'c', 'd']
>>> sorted(array, key=lambda v:map(order.index,v))
['bd', 'ab', 'ac', 'ca']
>>> order = ['d', 'c', 'b', 'a']
>>> sorted(array, key=lambda v:map(order.index,v))
['ca', 'bd', 'ac', 'ab']
</code></pre>
<p>让我们看看这是如何工作的:</p>
<p><code>map</code>为<code>v</code>中的每个项调用方法<code>order.index</code>,并使用这些返回值创建一个列表。<br/>
<code>v</code>将是{<cd5>}的元素之一</p>
^{pr2}$
<p>函数以<code>key=</code>的形式提供以进行排序,因此在内部对这些列表而不是字符串进行排序。在</p>