📜  Python|列表元素的排序列表的索引(1)

📅  最后修改于: 2023-12-03 15:19:18.547000             🧑  作者: Mango

Python | 列表元素的排序列表的索引

在Python中,列表是一种非常常用的数据类型,大多数情况下我们需要对列表中的元素进行排序。在排序后,我们可能还需要知道每个元素在排序列表中的索引位置,这时我们就可以使用Python中内置的sorted函数和enumerate函数来实现。

sorted函数

sorted函数可以对列表进行排序,它有两个参数:第一个是要排序的列表,第二个是排序算法的key参数(可选,默认值为None)。

使用sorted函数进行排序和获取排序后元素的索引位置的示例代码如下:

# 定义一个待排序的列表
lst = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]

# 对列表进行排序,使用lambda函数作为排序算法的key参数
sorted_lst = sorted(lst, key=lambda x: x)

# 获取每个元素在排序后的列表中的索引位置
indexes = [i for i, x in enumerate(lst)]   # 原列表的索引
sorted_indexes = [i for i, x in enumerate(sorted_lst)]   # 排序后列表的索引

# 打印结果
print(sorted_lst)   # [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
print(indexes)   # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(sorted_indexes)  # [1, 0, 6, 2, 9, 3, 4, 8, 7, 5, 10]

运行结果为:

[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[1, 0, 6, 2, 9, 3, 4, 8, 7, 5, 10]
enumerate函数

enumerate函数可以将可迭代对象转换为一个枚举对象,同时返回元素的索引值和元素本身。一般用于循环中。

使用enumerate函数获取列表元素的索引位置的示例代码如下:

# 定义一个待操作的列表
lst2 = ['apple', 'orange', 'banana', 'grape']

# 使用enumerate函数获取每个元素的索引位置和元素本身
for i, x in enumerate(lst2):
    print(i, x)

运行结果为:

0 apple
1 orange
2 banana
3 grape

enumerate函数应用到排序后的列表获取索引位置的示例代码如下:

# 定义一个排序后的列表
sorted_lst2 = sorted(lst2, key=lambda x: x)

# 获取每个元素在排序后的列表中的索引位置
sorted_indexes2 = [i for i, x in enumerate(sorted_lst2)]

# 打印结果
print(sorted_lst2)   # ['apple', 'banana', 'grape', 'orange']
print(sorted_indexes2)   # [0, 2, 3, 1]

运行结果为:

['apple', 'banana', 'grape', 'orange']
[0, 2, 3, 1]

以上就是使用sorted函数和enumerate函数获取列表元素的排序列表的索引的方法,希望对大家有所帮助。