给定两个数组arr1和arr2,其中arr2为arr1的子集,且arr2中的元素在arr1中都存在。现在要按照arr2中元素在arr1的出现顺序对arr1进行排序。
例子:
输入: arr1: [1,2,3,4,5] arr2: [4,2,1]
输出: [1,2,4,3,5]
实现代码如下:
def sortArray(arr1, arr2): result = [] # 将arr1中在arr2中的元素按照arr2出现的顺序排序 temp = sorted([x for x in arr1 if x in arr2], key=arr2.index) # 将arr1中未在arr2中的元素添加到排序后的结果中 for x in arr1: if x not in arr2: result.append(x) # 将排序后的结果添加到结果列表中 result += temp return result