我在列表中使用Python max和min函数来实现minimax算法,我需要max()或者返回的值的索引min().换句话说,我需要知道哪个移动产生了最大值(在第一个玩家的回合)或最小值(第二个玩家)值.
for i in range(9):
newBoard = currentBoard.newBoardWithMove([i / 3, i % 3], player)
if newBoard:
temp = minMax(newBoard, depth + 1, not isMinLevel)
values.append(temp)
if isMinLevel:
return min(values)
else:
return max(values)
Run Code Online (Sandbox Code Playgroud)
我需要能够返回最小值或最大值的实际索引,而不仅仅是值.
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内置实现?