gpt4 book ai didi

python - 如何获取按降序排列的数组的索引

转载 作者:行者123 更新时间:2023-12-01 00:40:28 25 4
gpt4 key购买 nike

我有一个简单的值列表,我需要其中的索引按原始值顺序(最大到最小)排序。

假设列表是

maxList = [7, 3, 6, 9, 1, 3]

结果应该是:

indexedMaxList = [3, 0, 2, 1, 5, 4]

到目前为止我尝试过的:

def ClusteringOrder(maxList):
sortedMaxList = maxList.copy()
sortedMaxList.sort(reverse=True)
indexedMaxList = []
for i in range(len(maxList)):
indexedMaxList.append(maxList.index(sortedMaxList[i]))
return(indexedmaxList)

问题很明显,这样做会返回第一次出现重复值的索引。在这种情况下,双 3 将返回 1 两次,因此结果将是:

indexedMaxList = [3, 0, 2, 1, 1, 4]

是否有任何简单的方法可以恢复实际位置?

最佳答案

您可以将 enumerate()sorted() 中的自定义 key= 参数结合起来:

maxList = [7, 3, 6, 9, 1, 3]

print([i[0] for i in sorted(enumerate(maxList), key=lambda k: k[1], reverse=True)])

打印:

[3, 0, 2, 1, 5, 4]

关于python - 如何获取按降序排列的数组的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57381945/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com