我有两个数组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循环和双重转换的好方法吗?
谢谢
答案 0 :(得分:2)
答案 1 :(得分:1)
可以使用:
[name for score,name in sorted(zip(scores,names))]
从逻辑上讲,这类似于您描述的双转换方法,但是使用zip
和理解可以在一行中实现它,而无需显式循环。