1 回答

TA貢獻(xiàn)1887條經(jīng)驗(yàn) 獲得超5個(gè)贊
問(wèn)題是,一旦對(duì)嵌套列表進(jìn)行遞歸調(diào)用,無(wú)論是否找到searched. 所以for循環(huán)永遠(yuǎn)不會(huì)繼續(xù)查看列表的其余部分。
返回前需要檢查遞歸是否成功。
此外,您不應(yīng)該coordinates使用append(). 無(wú)論是否成功,您最終都會(huì)返回您下降到的所有坐標(biāo)的列表。在遞歸中傳遞一個(gè)新列表作為參數(shù)。
def searchArray(array, searched, coordinates=[]):
for i, dimension in enumerate(array):
if type(dimension) == int:
if dimension == searched:
return coordinates+[i,]
else:
found = searchArray(dimension, searched, coordinates=coordinates + [i])
if found:
return found
return None # Not found
添加回答
舉報(bào)