期望的输出
我想要一个函数返回一个列表,这样,给定一个“混乱”的列表,如果已排序l
,每个元素都是 的相应元素的索引。(对不起,我想不出一种不那么复杂的说法。)l
l
例子
f([3,1,2])
=[2,0,1]
f([3,1,2,2,3])
= [3,0,1,2,4]
,因为排序后的输入是[1,2,2,3,3]
。
(这对于某些统计数据计算很有用。)
我的尝试
我想出了一种方法来执行此功能,但这是python - 似乎应该有一个单行来执行此操作,或者至少是一种更清洁、更清晰的方法。
def getIndiciesInSorted(l):
sortedL = sorted(l)
outputList = []
for num in l:
sortedIndex = sortedL.index(num)
outputList.append(sortedIndex)
sortedL[sortedIndex] = None
return outputList
l=[3,1,2,2,3]
print getIndiciesInSorted(l)
那么,我怎样才能更简洁地写这个呢?是否有清晰的列表理解解决方案?