转换N个项目清单,以相对顺序(0

编程入门 行业动态 更新时间:2024-10-18 05:58:47
本文介绍了转换N个项目清单,以相对顺序(0-(N-1))?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

例如,如果我有不同的项目清单:

For example if I have a list of distinct items:

L = [100,55,104,400]

相对排序可以重新

The "relative" orderings can be restated:

R = [1,0,2,3]

我不知道如何为L从一切转换成河起初我只是想减去分(L),但没有COM preSS下来,以相对顺序。

I am not sure how to convert L to R. At first I just tried subtracting min(L) from everything but that doesn't "compress" things down to relative order.

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

I am looking for an efficient solution (not O(n2)).

推荐答案

您可以尝试的名单COM prehension的组合,拉链和排序:

You can try a combination of list comprehension, zip, and sorted:

>>> [i[1] for i in sorted(zip(L, range(4)))] [1, 0, 2, 3]

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

This is O(nlogn) since you only need to sort once.

更多推荐

转换N个项目清单,以相对顺序(0

本文发布于:2023-11-29 12:02:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1646345.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:清单   顺序   项目

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!