【发布时间】:2021-11-01 00:14:09
【问题描述】:
假设我有两个列表
future_ranking = [3, 6, 9, 6]
games_played = [1, 3, 3, 2]
现在我的目标是将其转换为索引排名
[2, 3, 1, 0]
这将是预期的输出。
问题是,我的 lambda 函数做得好吗?
my_cool_lambda = sorted(range(len(future_ranking)), key = lambda x: future_ranking[x], reverse = True)
起初我想,该死的,一切都非常好!总有一天我会成为一名程序员。直到我意识到我很酷的 lambda 函数,当两个分数相同时,它会为先出现的索引给出更高的位置,这不是我想要的。 如果得分相同,则应将较高的位置分配给比赛较少的索引。
所以我得到的输出是
[2, 1, 3, 0]
我想要的输出是
[2, 3, 1, 0]
有谁知道我该如何解决这个问题?我知道问“嘿,你基本上可以为我做这件事吗?”并不酷。但我不知道,我发誓我尝试了很多。
【问题讨论】:
-
您在帖子中花了很多话进行社交(这里的大多数人宁愿看到您的帖子没有),但在实际解释您要解决的问题上却没有那么多。您是否正在寻找
future_ranking和games_played的索引,按所玩游戏的排名以及在游戏排名相同的情况下按所玩的大多数游戏排序? -
嘿,是的,我正在寻找那个。抱歉社交部分
-
6/3是2,而3/1是3,为什么要[... , 1, 0]而不是[... , 0, 1]? -
如果一支球队的比赛次数较少,如果它与另一支球队的积分数相同,则排名更高
标签: python