我有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。
l
m
例如,b应该成为第四,e充满灵魂的成为第二。
b
e
我真的被算法和逻辑困扰,所以我对如何处理这个问题一无所知。
我怎样才能做到这一点?
如果您只是想让元素根据其他列表的位置四处移动,则可以遍历其中的所有元素,m并l使用列表理解来获取该元素
l2 = [l[i - 1] for i in m]
但是,如果您确实希望基于其他列表进行排序,则需要将它们压缩在一起,对索引进行排序,然后提取元素
[y for x,y in sorted(zip(m,l))]