Skip to main content
 首页 » 编程设计

python之用 Python 列表中的值交换索引

2025年05月04日13unruledboy

(不,这不是家庭作业也不是竞赛,尽管它看起来像竞赛。)

我在 Python 中有一个列表 A,其中包含数字 range(0, len(A))。数字不分先后,但都存在于列表中。

我正在寻找一种简单的方法来构建列表 B,其中交换了索引和值,即对于每个整数 n,包含的列表n 在 A 中的位置。

例子:

A = [0, 4, 1, 3, 2] 
B = [0, 2, 4, 3, 1] 

我可以将生成 B 的代码单独放在生成 A 的代码中。特别是,这是我生成 A 的方式:

A = [value(i) for i in range(length)] 

执行此操作的最佳方法是什么?

请您参考如下方法:

如何分配给预分配的 B:

>>> A = [0, 4, 1, 3, 2] 
>>> B = [0] * len(A) 
>>> for k, v in enumerate(A): B[v] = k 
>>> B 
[0, 2, 4, 3, 1] 

那将是 O(n)。