You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中对带enumerate标记的列表排序并保留原始下标

为带原始下标的数组按元素值排序

你已经通过enumerate()给数组元素加上了原始下标,接下来只需要在排序时指定**按元组的第二个元素(原数组值)**作为排序依据即可,这样原始下标会自动跟随对应元素。

实现代码

arr = [102, 4325, 5125, 657, 2643]
# 给元素添加原始下标
arr_with_index = list(enumerate(arr))
# 按元素值升序排序,key指定取元组的第二个元素
sorted_arr = sorted(arr_with_index, key=lambda x: x[1])

print(sorted_arr)

输出结果

[(0, 102), (3, 657), (4, 2643), (1, 4325), (2, 5125)]

补充说明

  • 如果想直接在原列表上修改(不生成新列表),可以用列表的sort()方法:
    arr_with_index.sort(key=lambda x: x[1])
    
  • lambda x: x[1]的作用是告诉排序函数,每个元素的排序依据是元组里的第二个值(也就是原数组的元素值),这样排序后原始下标会和对应的元素绑定在一起。

内容的提问来源于stack exchange,提问作者klg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 23:22:05