nums = [1,8,2,23,7,-4,18,23,24,37,2]
result = map(nums.index, heapq.nlargest(3, nums))
temp=[]
Inf = 0
for i in range(3):
temp.append(nums.index(max(nums)))
nums[nums.index(max(nums))]=Inf
result.sort()
temp.sort()
print(result)
print(temp)
如上,有result和temp两种求法,上面代码输出:
[3, 8, 9]
[3, 8, 9]
没问题
但是把nums改一下:
nums = [1,8,2,23,7,-4,18,23,23,37,2]
输出:
[3, 3, 9]
[3, 7, 9]
发现问题了吧,result方法发现相同数字永远会返回第一次出现的索引。