擅长:python、mysql、java
<p>zip排序-解压过程应该做到以下几点:</p>
<pre><code>data = [[1, 3, 0, 2], ['olives', 'tomatoes', 'avocado', 'patato']]
sorted_data = zip(*sorted(zip(data[0], data[1])))
# [(0, 1, 2, 3), ('avocado', 'olives', 'patato', 'tomatoes')]
</code></pre>
<p>或者如果你想把它们列为清单:</p>
<pre><code>sorted_data = map(list, zip(*sorted(zip(data[0], data[1]))))
# [[0, 1, 2, 3], ['avocado', 'olives', 'patato', 'tomatoes']]
</code></pre>
<p>在Python3.x上,<code>zip</code>和<code>map</code>都返回迭代器,因此如果您想将它们“烘焙”到列表中,只需将它们“强制转换”为迭代器,即:</p>
<pre><code>sorted_data = list(map(list, zip(*sorted(zip(data[0], data[1])))))
</code></pre>
<p>注意:正如JJoao所建议的,您也可以在内部<code>zip</code>中使用参数展开,而不是显式地从列表中选择要<code>zip</code>的字段,例如:</p>
<pre><code>sorted_data = list(map(list, zip(*sorted(zip(*data)))))
</code></pre>