Ani*_*mes 3 python list python-2.7
我有一个包含10个项目的列表,以及另外10个随机不重复的数字列表,如下所示:
l = [a,b,c,d,e,f,g,h,i,j]
m = [1,4,5,9,2,6,3,7,8,10]
Run Code Online (Sandbox Code Playgroud)
我想重新排列l,以便每个项目都l从中获取相应的索引m.
例如,b应该成为第四个,并e成为第二个.
我真的坚持算法,逻辑让我烦恼,所以我对如何处理这个问题一无所知.
我怎样才能做到这一点?
如果你只是试图根据其他列表位置移动元素,你可以遍历所有元素m并抓住l使用列表理解的元素
l2 = [l[i - 1] for i in m]
Run Code Online (Sandbox Code Playgroud)
但是如果你确实想要基于其他列表的排序,你需要将它们压缩在一起,对索引进行排序,然后提取元素
[y for x,y in sorted(zip(m,l))]
Run Code Online (Sandbox Code Playgroud)