【发布时间】:2015-08-19 17:43:03
【问题描述】:
例如,如果我有一个不同项目的列表:
L = [100,55,104,400]
“相对”排序可以重述:
R = [1,0,2,3]
我不确定如何将 L 转换为 R。起初我只是尝试从所有内容中减去 min(L),但这并没有“压缩”到相对顺序。
我正在寻找一个有效的解决方案(不是 O(n2))。
【问题讨论】:
-
你也可以查看其他骗子stackoverflow.com/questions/3382352/…
-
如果您知道基本的内置函数,这非常简单:
[i for i, x in sorted(enumerate(L), key=itemgetter(1))]您可以从operator模块中获取itemgetter。 -
这是一个不好的例子。一个更好的例子是
[100,104,55,400];那应该给[1,2,0,3]还是[2,0,1,3]?