【发布时间】:2018-12-19 22:01:52
【问题描述】:
我正在尝试创建一个 python 函数,其中我给出了一个特定的列表,它返回一个包含元素排序位置的列表(不以 0 开头)。 例如:
list = [9,3,4,1]
function(list) = [4,2,3,1]
或
list = [2,2,6,5]
function(list) = [1,1,3,2]
【问题讨论】:
-
您可能是指排序列表中的位置?
-
复制列表,从中删除重复项,然后对其进行排序。然后循环遍历原始列表,获取排序后的副本中每个元素的索引。
-
StackOverflow 不是免费的编码服务。 SO希望您try to solve your own problem first。请更新您的问题以在minimal reproducible example 中显示您已经尝试过的内容。如需更多信息,请参阅How to Ask,并拨打tour :)
-
@PatrickArtner:请注意,这会导致原始
list中的值不是唯一的复杂性,并希望重复项共享一个公共索引。重复的输入list是唯一的,所以没有出现。 -
为什么您希望
[2,2,6,5]的输出为[1,1,3,2]。应该是[1,1,4,3]对吧?因为有两个 2,所以他们都被分配了排名 1。但是他们并列第一名,所以下一个值是第三名,而不是第二名。我的意思是,你可以用任何你想要的方式定义问题,但对我个人来说,这似乎很奇怪。干杯。
标签: python python-3.x algorithm list