数组中有两个一样的最小值,该怎么获得到这两个数的索引
时间: 2024-04-29 08:22:33 浏览: 69
如果您使用的是 Python 语言,可以使用以下代码来获得数组中两个一样的最小值的索引:
```python
arr = [1, 2, 3, 1, 4, 5, 1]
min_val = min(arr)
min_indices = [i for i, val in enumerate(arr) if val == min_val]
print(min_indices)
```
这段代码会先找到数组中的最小值,然后使用一个列表推导式来获取该最小值在数组中出现的所有索引。在示例中,输出结果为 `[0, 3, 6]`,表示数组中的三个最小值分别在索引0、3、6处出现。
相关问题
找出含有10个元素一维数组中的最大值和最小值,并互换这两个数的位置。
以下是一个示例代码,用于实现这个功能:
```python
arr = [5, 3, 9, 2, 7, 8, 1, 6, 4, 10] # 一个长度为10的数组
# 找出最大值和最小值的索引
max_idx = arr.index(max(arr))
min_idx = arr.index(min(arr))
# 互换最大值和最小值的位置
arr[max_idx], arr[min_idx] = arr[min_idx], arr[max_idx]
print(arr) # 输出交换后的数组
```
运行结果:
```
[5, 3, 9, 2, 7, 8, 10, 6, 4, 1]
```
这里使用了 `index()` 方法来查找最大值和最小值的索引,然后使用了 Python 的多重赋值语法来交换这两个数的位置。
返回数组中前n个最小值的索引
以下是一个Python实现,可以返回数组中前n个最小值的索引:
```python
import heapq
def get_n_smallest_indexes(arr, n):
# 使用heapq模块的nsmallest函数获取前n个最小值的元素
smallest_n = heapq.nsmallest(n, enumerate(arr), key=lambda x: x[1])
# 返回前n个最小值的索引
return [i for i, _ in smallest_n]
```
这个函数接受两个参数:一个数组和一个整数n,返回数组中前n个最小值的索引。我们使用heapq模块的nsmallest函数获取前n个最小值的元素,然后将它们的索引从元组中提取出来并返回。
阅读全文