擅长:python、mysql、java
<p><strong>最短代码</strong></p>
<pre><code>[x for _, x in sorted(zip(Y, X))]
</code></pre>
<p><strong>示例:</strong></p>
<pre><code>X = ["a", "b", "c", "d", "e", "f", "g", "h", "i"]
Y = [ 0, 1, 1, 0, 1, 2, 2, 0, 1]
Z = [x for _,x in sorted(zip(Y,X))]
print(Z) # ["a", "d", "h", "b", "c", "e", "i", "f", "g"]
</code></pre>
<hr/>
<p><strong>一般来说</strong></p>
<pre><code>[x for _, x in sorted(zip(Y, X), key=lambda pair: pair[0])]
</code></pre>
<p><strong>解释:</strong></p>
<ol>
<li><a href="https://docs.python.org/3/library/functions.html#zip" rel="noreferrer">^{<cd1>}</a>两个{<cd2>}</李>
<li>使用<a href="https://www.programiz.com/python-programming/methods/built-in/sorted" rel="noreferrer">^{<cd5>}</a>基于<code>zip</code>创建一个新的、已排序的<code>list</code></李>
<li>使用列表理解从已排序的压缩<code>list</code>中提取每对的第一个元素</李>
</ol>
<p><em>有关如何设置\使用<code>key</code>参数以及<code>sorted</code>函数的更多信息,请参阅<a href="http://pythoncentral.io/how-to-sort-a-list-tuple-or-object-with-sorted-in-python/" rel="noreferrer">this</a></em></p>
<hr/>