将N个项目的列表转换为相对排序(0-(N-1))?

时间:2015-06-04 22:24:17

标签: python algorithm list

例如,如果我有不同项目的列表:

L = [100,55,104,400]

“相对”排序可以重申:

R = [1,0,2,3]

我不确定如何将L转换为R.起初我只是尝试从所有内容中减去min(L),但不会将事物“压缩”到相对顺序。

我正在寻找一种有效的解决方案(不是O(n 2 ))。

3 个答案:

答案 0 :(得分:2)

使用sorted功能和列表推导。

<button class="btn btn-primary btn-xs 
{% for creator in item.votes_received.all %}
  {%if user.id == creator.id %}
    disabled
  {%endif%}
{% endfor %}
">Send Coffee</button>

请注意,这是O(n 2 在编辑之前回答问题

答案 1 :(得分:2)

您可以尝试结合列表理解,:zip

sorted

这是O(nlogn),因为你只需要排序一次。

答案 2 :(得分:1)

简单列表理解:

C