【发布时间】:2019-06-06 23:47:06
【问题描述】:
我有两个数组 names 和 scores。 names 中的每个索引对应scores 中的一个索引。如何将names按照与排序的scores对应的顺序排列?
例如来自
names = ["Jo", "Mary", "Luke"]
scores = [9, 4, 8]
我们得到
scores = [4, 8, 9]
names = ["Mary", "Luke", "Jo"]
我只有一个丑陋的想法是首先将 2 个数组转换为元组数组,然后使用标准 python 排序,然后再转换回两个数组。 有没有丑陋的for循环和双重转换的好方法?
谢谢
【问题讨论】:
-
我使用的副本是用于嵌套列表(有点像二维数组),但原理是一样的。下面的答案很好地总结了您的一维案例的用法。
-
@Prune 我相信向量化的 numpy 解决方案是对问题的一个很好的补充,并且不在链接的欺骗中
-
同意;投票重新开放。我在寻找骗子时看到了
argsort解决方案,但现在找不到。如果它不是微不足道的,让我们把它作为另一个参考。