如何在Python中找到整数数组的最小值和最大值的索引

3

你好,我想找到整数数组中最大值和最小值的第一个索引。

如果存在重复值,我的代码会返回所有的索引...

A= [1,1,8,7,5,9,6,9]
def minmaxloc(num_list):
  for i,y in enumerate(num_list):
    if y ==max(num_list) or y==min(num_list):
      print i
minmaxloc(A)

输出: 0 1 5 7

我想要的是: (0,5)

谢谢你的帮助。


1
import numpy as np; (np.argmin(A),np.argmax(A)) - anishtain4
你被引导到的问题中,排名第一的答案并不是很好,因为它可能会对数组进行两次扫描。第二个答案 https://dev59.com/vXE95IYBdhLWcg3wEpro#2474238 在这方面更好。理想情况下,你应该能够在单次扫描中计算出最大值和最小值,但是 Python 和 Numpy 都没有提供 minmax 函数 :( - Ahmed Fasih
2个回答

2
def minmaxloc(num_list):
    return num_list.index(max(num_list)), num_list.index(min(num_list))

print(minmaxloc(a))

1
使用numpy的argmin和argmax方法:
import numpy as np
def minmaxloc(num_list):
    return np.argmin(num_list), np.argmax(num_list)
A= [1,1,8,7,5,9,6,9]
print(minmaxloc(A))

谢谢帮忙!它运行得很好,但我想使用enumerate。 - bryan tetris
为什么要踩我呢?你能详细说明一下为什么需要使用enumerate吗?似乎还有更多的故事。 - Merlin1896

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接