【发布时间】:2019-02-17 17:10:01
【问题描述】:
在保留我们从中提取索引的列表的同时,将对应于另一个列表的 n 个最高值的索引提取到列表中的最有效方法是什么?
例如,假设我们有以下索引列表:
foo = [107,6,34,12,82]
如果我们请求列表 foo 的 2 个最高值的索引,它应该返回以下列表:
bar = [0,4]
这是我现在正在运行的,它确实效率低下,一点也不优雅,我真的不知道如何改进它:
foo = [107, 6, 34, 12, 82]
tmp = list(foo)
bar = []
no_of_indices_wanted = int(input())
for n in range(no_of_indices_wanted):
bar.append(foo.index(max(foo)))
foo.pop(foo.index(max(foo)))
foo = tmp
【问题讨论】: