以下是一个示例代码,用于按照另一个数组的顺序对数组进行排序:
def custom_sort(arr, order):
# 创建一个字典,用于存储每个元素在order中的索引位置
order_dict = {value: index for index, value in enumerate(order)}
# 使用自定义的比较函数,根据order中的索引位置进行排序
arr.sort(key=lambda x: order_dict.get(x, float('inf')))
return arr
# 测试示例
arr = [1, 2, 3, 4, 5]
order = [3, 4, 2, 1, 5]
sorted_arr = custom_sort(arr, order)
print(sorted_arr)
输出:
[3, 4, 2, 1, 5]
这段代码中,我们首先创建了一个字典order_dict,该字典存储了order中每个元素的索引位置。然后使用sort方法对arr进行排序,使用自定义的比较函数key=lambda x: order_dict.get(x, float('inf'))。该比较函数会根据order_dict中存储的索引位置来进行排序,如果元素不在order_dict中,则默认将其放在最后。最后返回排序后的数组sorted_arr。
下一篇:按照另一个数组的顺序过滤数组