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
内置实现吗?
您可以轻松地使用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
如果您不喜欢使用__getitem__
min(range(len(v)),key=lambda x : v[x])