小编典典

如何根据第二个索引列表重新排列一个列表

python

我有10个项目的清单,还有另一个10个随机未重复的数字的清单,如下所示:

l = [a,b,c,d,e,f,g,h,i,j]
m = [1,4,5,9,2,6,3,7,8,10]

我想重新排列l,以便其中的每个项目都l从中获取其相应的索引m

例如,b应该成为第四,e充满灵魂的成为第二。

我真的被算法和逻辑困扰,所以我对如何处理这个问题一无所知。

我怎样才能做到这一点?


阅读 134

收藏
2021-01-20

共1个答案

小编典典

如果您只是想让元素根据其他列表的位置四处移动,则可以遍历其中的所有元素,ml使用列表理解来获取该元素

l2 = [l[i - 1] for i in m]

但是,如果您确实希望基于其他列表进行排序,则需要将它们压缩在一起,对索引进行排序,然后提取元素

[y for x,y in sorted(zip(m,l))]
2021-01-20