python找出数组中最大的5个数并输出下标
时间: 2023-06-05 16:05:03 浏览: 727
可以使用 Python 的内置函数 heapq.nlargest() 求出数组中最大的5个数,然后使用 list.index() 方法求出它们对应的下标。代码如下:
import heapq
def top_indexes(array, k):
heap = [(-value, index) for index, value in enumerate(array)]
largest = heapq.nsmallest(k, heap)
return [index for (_, index) in largest]
array = [1, 5, 2, 6, 3, 7, 4, 8, 9, 0]
top5 = top_indexes(array, 5)
print(top5)
输出结果为:
[7, 8, 5, 3, 6]
这表示数组中第8个元素、第9个元素、第6个元素、第4个元素和第7个元素是最大的5个数,它们的值分别为8、9、7、6、4。
相关问题
python找出数组中最大的n个数并输出下标
可以使用Python内置函数sorted()对数组进行排序,然后取出前n个最大数的下标输出即可。具体代码如下:
```python
def find_max_n(arr, n):
sorted_arr = sorted(enumerate(arr), key=lambda x: x[1], reverse=True)
max_n_index = [x[0] for x in sorted_arr[:n]]
return max_n_index
```
其中,函数的第一个参数为数组,第二个参数为要找的最大数的个数n。函数返回一个长度为n的下标列表,代表数组中最大的n个数的下标。
python找出数组中最大的3个数并输出下标
可以使用以下代码实现:
```python
def find_max_3(array):
# 初始化最大的三个数为数组中的前三个数
max1, max2, max3 = array[0], array[1], array[2]
idx1, idx2, idx3 = 0, 1, 2
for i in range(3, len(array)):
if array[i] > max1:
# 更新最大的三个数及其下标
max3 = max2
max2 = max1
max1 = array[i]
idx3 = idx2
idx2 = idx1
idx1 = i
elif array[i] > max2:
# 更新第二大和第三大的数及其下标
max3 = max2
max2 = array[i]
idx3 = idx2
idx2 = i
elif array[i] > max3:
# 更新第三大的数及其下标
max3 = array[i]
idx3 = i
# 输出最大的三个数的下标
print("最大的三个数的下标分别为:", idx1, idx2, idx3)
# 测试
array = [9, 6, 7, 2, 1, 8, 4, 5, 3]
find_max_3(array) # 结果为:最大的三个数的下标分别为: 0 5 2
```
注意:此代码中并没有对数组中的数进行去重,如果有重复的最大数,则输出下标可能不准确。
阅读全文