def searchletter(letterdata,eIndex,letter):
found_list=[]
if eIndex==-1:
return found_list
elif letterdata[eIndex]==letter:
found_list.append(letterdata[eIndex])
return searchletter(letterdata,eIndex-1,letter)
else:
return searchletter(letterdata,eIndex-1,letter)
letterdata=['a','b','a']
print(searchletter(letterdata,len(letterdata)-1,'a'))
Expected Output:
['a','a']
你好,我真的知道为什么我得到一个空名单。这是因为当我调用函数内部的函数时,它会使found_list再次为空,那么有没有什么方法可以让代码在第一次执行found_list=[]
后不读取它?
def searchletter(letterdata,eIndex,letter,found_list):
if eIndex==-1:
return found_list
elif letterdata[eIndex]==letter:
found_list.append(letterdata[eIndex])
return searchletter(letterdata,eIndex-1,letter,found_list)
else:
return searchletter(letterdata,eIndex-1,letter,found_list)
letterdata=['a','b','a']
print(searchletter(letterdata,len(letterdata)-1,'a',[]))
每次调用函数时都要创建一个列表,要么需要一个不断追加元素的全局列表,要么可以将列表作为参数传递。