首页 > 解决方案 > 如何返回列表中每个元素的顺序索引?

问题描述

我有一个数字列表,比如说L=[50, 10, 30],在 Python 中我想返回一个列表,给出每个元素的顺序索引L,这将是这个输出:[2, 0, 1]

尽管这似乎是一项简单的任务,但该站点上的许多问题(例如此处此处)都集中相反的方向上,即从排序列表的角度来看的索引:[1, 2, 0],这不是我想要的。

谢谢,

编辑:关于重复,我希望它们也被计算在内(按出现顺序绘制)。[50,30,10,30]会给[3,1,0,2]

标签: pythonsortingindexing

解决方案


一个班轮:

l = [50, 30, 10, 30]
numpy.argsort(numpy.argsort(l))
# array([3, 1, 0, 2])

推荐阅读