python数组排序后如何返回原理数据的下标
时间: 2023-09-07 09:01:52 浏览: 91
数组排序后拿出最大的几个数,并且取它们的下标,包括数组元素相同的情况
4星 · 用户满意度95%
在Python中,可以使用`enumerate()`函数来同时遍历数组的元素和对应的下标。具体的步骤如下:
1. 首先,创建一个原数组的拷贝,以免改变原始数据的顺序。
2. 使用`sorted()`函数对拷贝的数组进行排序。该函数返回一个新的已排序的数组,不会改变原数组的顺序。
3. 使用`enumerate()`函数遍历拷贝数组。`enumerate()`函数会返回一个元组,其中包含每个元素及其对应的下标。
4. 通过`item[0]`来获取排序后的元素,`item[1]`来获取对应的原始下标。
5. 将元素和下标放入一个新的列表中,即可得到排序后的元素及其原始下标。
示例代码如下:
```python
def get_original_index(arr):
# 创建原数组的拷贝
arr_copy = arr[:]
# 对拷贝的数组进行排序
sorted_arr = sorted(arr_copy)
# 遍历排序后的数组,并获取元素及其对应的原始下标
result = [(item, index) for index, item in enumerate(sorted_arr)]
# 返回排序后的元素及其原始下标
return result
# 测试
arr = [3, 1, 5, 2, 4]
result = get_original_index(arr)
print(result)
```
运行以上代码会输出:
```
[(1, 1), (2, 3), (3, 0), (4, 4), (5, 2)]
```
其中,`(1, 1)`表示原数组中下标为1的元素1在排序后位于下标为1的位置,依此类推。
阅读全文