python对列表元素进行排序,返回排序的索引号
时间: 2024-09-22 21:01:45 浏览: 58
在Python中,如果你想要对列表元素进行排序并同时获取每个元素排序后的相对位置,你可以使用内置的`sorted()`函数结合`enumerate()`函数。`enumerate()`函数会返回一个枚举对象,包含元素及其对应的索引。
例如:
```python
# 原始列表
original_list = [5, 2, 8, 1, 9]
# 使用sorted()对列表进行排序,并保留原始索引
sorted_with_indices = sorted(enumerate(original_list), key=lambda x: x[1])
# 排序后的结果是一个元组列表,第一个元素是原索引,第二个元素是排序后的值
sorted_values_and_indices = [(index, value) for index, value in sorted_with_indices]
# 只取排序后的索引
sorted_indices = [index for index, _ in sorted_with_indices]
print("排序后的索引:", sorted_indices)
```
这将输出排序后的元素的原始索引,如`[0, 2, 4, 1, 3]`,表示原来的5排在第一位,然后是2,接着是9,依此类推。
相关问题
python实现对列表进行排序并返回排序后的索引值
可以使用 `sorted()` 函数结合 `enumerate()` 函数实现对列表进行排序并返回排序后的索引值。具体实现如下:
```python
lst = [4, 2, 3, 1]
sorted_index = [i for i, _ in sorted(enumerate(lst), key=lambda x: x[1])]
```
其中,`enumerate()` 函数可以同时返回列表的索引值和对应的元素值,然后通过 `sorted()` 函数指定按照元素值排序,得到排序后的元素值和对应的索引值。最后通过列表推导式将得到的排序后的索引值存储到 `sorted_index` 列表中。
python对列表排序,并返回索引
可以使用 `sorted` 函数和列表的 `index` 方法来实现:
```python
lst = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
sorted_idx = sorted(range(len(lst)), key=lambda i: lst[i])
```
其中,`sorted` 函数的 `key` 参数指定了排序规则,这里使用了一个 lambda 函数,将列表中各个元素的索引作为参数,返回对应元素的值作为排序依据。
`sorted_idx` 列表中的元素就是 `lst` 中元素按照升序排列后的索引。例如,`sorted_idx` 的第一个元素就是 `lst` 中最小值的索引。
如果需要按照降序排列,可以将 lambda 函数中的 `lst[i]` 改为 `-lst[i]`。
阅读全文