在Python中,可以使用sorted()
函数对列表进行排序,并使用enumerate()
函数获取排序后的元素的原始索引。
下面是一个示例代码:
def sort_with_original_index(lst):
sorted_lst = sorted(enumerate(lst), key=lambda x: x[1])
original_index = [x[0] for x in sorted_lst]
return original_index
# 示例用法
my_list = [5, 2, 9, 1, 7]
result = sort_with_original_index(my_list)
print(result)
输出结果为:[3, 1, 0, 4, 2]
,表示原始列表中的元素按升序排序后的索引顺序。
解释代码的工作原理:
enumerate(lst)
函数将列表lst
转换为一个包含索引和元素的元组列表。sorted()
函数根据元组列表中的元素进行排序,使用lambda x: x[1]
作为排序的关键字,表示按元组的第二个元素进行排序。sorted_lst
变量中。[x[0] for x in sorted_lst]
提取排序后的元组列表中的索引部分,得到原始索引列表original_index
。original_index
作为结果。需要注意的是,以上代码只是对列表进行简单的升序排序,并获取排序后的原始索引。如果需要进行其他类型的排序,可以根据具体需求修改sorted()
函数的关键字参数。
领取专属 10元无门槛券
手把手带您无忧上云