Min index内置函数

Pab*_*lgo 1 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
Run Code Online (Sandbox Code Playgroud)

Python是否提供minIndex内置实现?

Mar*_*ers 6

您可以轻松使用min()此:

min(range(len(v)), key=v.__getitem__)
Run Code Online (Sandbox Code Playgroud)

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

演示:

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