回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有一个元组列表:
<code>a = [(10, 11), (5, 5), (2, 3), (6, 7), (8, 3), (9, 2)]</code>和一个带有值的简单列表<code>b = [10, 9, 10, 2, 8, 3]</code>。然后我列举第二个列表,并出于某些目的对其进行排序</p>
<pre><code>b_enumerated = list(enumerate(b))
# [(0, 10), (1, 9), (2, 10), (3, 2), (4, 8), (5, 3)]
b_sorted = sorted(b_enumerated, key=lambda x: x[1], reverse=True)
# [(0, 10), (2, 10), (1, 9), (4, 8), (5, 3), (3, 2)]
</code></pre>
<p>现在我想根据第二个排序列表重新排列我的第一个列表,因此我希望得到<code>[(10, 11), (2, 3), (5, 5), (8, 3), (9, 2), (6, 7)]</code>(原始列表的元组按排序列表的索引顺序:0、2、1、4、5、3),其中,例如,我枚举的第一个列表是<code>[(0, (10, 11)), (1, (5, 5)), (2, (2, 3)), (3, (6, 7)), (4, (8, 3)), (5, (9, 2))]</code></p>
<p>我怎样才能达到预期的结果?也许我需要使用某种索引,因为对压缩列表排序没有帮助</p>
<p>谢谢</p>