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
内置实现?
答案 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])