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

如何通过给定索引列表将已重排的Python列表恢复为原始顺序

可以实现,核心是基于给定的index_list生成对应的逆置换索引,即可完成反向恢复。

原逻辑梳理

你提供的重排代码逻辑为:重排后列表的第j个元素,取自原始列表的第index_list[j]个元素,对应公式:
result[j] = element[index_list[j]]

恢复实现代码

# 你的原始重排逻辑
element =  ['a', 'b', 'c', 'd', 'e', 'f', 'g']
index_list =  [3,5,6,1,2,4,0]
result = [element[i] for i in index_list]
print(result) # 输出:['d', 'f', 'g', 'b', 'c', 'e', 'a']

# 仅用原index_list生成逆置换索引
inv_index = [0] * len(index_list)
for pos, origin_idx in enumerate(index_list):
    inv_index[origin_idx] = pos

# 用逆索引恢复原始列表
restored_element = [result[i] for i in inv_index]
print(restored_element) # 输出:['a', 'b', 'c', 'd', 'e', 'f', 'g']

逻辑说明

逆置换索引inv_index的作用是标记原始列表的第k个元素,在重排后的result中所处的位置。遍历一次原index_list即可完成逆索引构建,时间复杂度为O(n),空间复杂度为O(n),是置换类操作的标准逆操作实现。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 04:45:05