如何在Python中按指定顺序重新排列一个数组


发布时间:2023年8月24日 18:04 作者:admin

如何在Python中按指定顺序重新排列一个数组
在Python中,有多种方法可以按照指定的顺序重新排列一个数组。本文将介绍两种常用的方法:使用sorted函数和使用自定义排序函数。
1. 使用sorted函数
sorted函数是Python内置的用于排序的函数,它接受一个可迭代对象作为参数,并返回一个新的已排序的列表。
下面是一个使用sorted函数按指定顺序重新排列数组的示例代码:
```python\narr = [5, 2, 8, 1]\norder = [1, 2, 5, 8]
sorted_arr = sorted(arr, key=lambda x: order.index(x))\nprint(sorted_arr)\n```
输出结果为:`[1, 2, 5, 8]`
在上面的代码中,我们先定义了一个待排序的数组arr和一个指定顺序的数组order。然后使用sorted函数对arr进行排序,key参数指定了排序的规则。我们使用了一个匿名函数lambda来指定排序规则,该函数返回元素在order数组中的索引,这样可以按照order数组的顺序进行排序。
2. 自定义排序函数
除了使用sorted函数,我们还可以自定义排序函数来按照指定顺序重新排列数组。
下面是一个使用自定义排序函数按指定顺序重新排列数组的示例代码:
```python\narr = [5, 2, 8, 1]\norder = [1, 2, 5, 8]
def custom_sort(x):\n return order.index(x)
sorted_arr = sorted(arr, key=custom_sort)\nprint(sorted_arr)\n```
输出结果为:`[1, 2, 5, 8]`
在这个例子中,我们定义了一个名为custom_sort的函数,该函数接受一个元素x作为参数,并返回x在order数组中的索引。然后我们使用sorted函数对arr进行排序,key参数传入了custom_sort函数,这样就通过自定义的排序规则进行了排序。
综上所述,我们可以使用sorted函数或自定义排序函数来按指定顺序重新排列一个数组。这些方法都很简单且灵活,可以根据具体需求选择合适的方法来实现。

图片