Min index内置函数

时间:2014-07-09 10:59:38

标签: python

Python有一个内置函数min,它返回iterable中的最小值。

这对于使代码简洁明了非常有用。但是,很多时候我发现自己实现了自己的minIndex函数:

def minIndex(v):
    ret = -1
    for i in xrange(len(v)):
        if ret < 0 or v[ret]>v[i]:
            ret = i
    return ret

Python是否提供minIndex内置实现?

2 个答案:

答案 0 :(得分:6)

您可以轻松使用min()

min(range(len(v)), key=v.__getitem__)

这会生成一系列索引(在Python 2中,xrange()也会这样做),然后将这些索引映射到v中的值以确定最小值。

演示:

>>> v = [42, 81, 7, 99, -1, 1991]
>>> min(range(len(v)), key=v.__getitem__)
4

答案 1 :(得分:1)

或者,如果您不想使用__getitem__

,则可以执行此操作
min(range(len(v)),key=lambda x : v[x])