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

如何对数字列表升序排序并保留各元素对应的原始索引

实现逻辑

将列表元素和它对应的原始索引绑定为一个组合单元,以元素值为排序依据对组合单元进行升序排序,排序完成后再从组合单元里分别提取索引和元素即可。

Python 实现代码

a = [22,2,4,53,43,32,3,5,1,101]
# 绑定索引与元素,按元素值升序排列
sorted_items = sorted(enumerate(a), key=lambda x: x[1])
# 提取排序后的原始索引序列
sorted_index = [item[0] for item in sorted_items]
# 提取排序后的元素序列
sorted_a = [item[1] for item in sorted_items]

# 打印验证结果
print("index", *sorted_index)
print("a =", sorted_a)

运行后输出和要求的结果完全一致:

index 8 1 6 2 7 0 5 4 3 9
a = [1, 2, 3, 4, 5, 22, 32, 43, 53, 101]

其他语言通用实现思路

所有支持自定义排序规则的语言都可以用相同逻辑实现:

  • 第一步:遍历原始列表,生成「(原始索引, 元素值)」的组合列表
  • 第二步:以组合单元中的元素值为依据,对组合列表做升序排序
  • 第三步:遍历排序后的组合列表,分别提取索引和元素值得到最终结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 03:57:01