def main():
def remove(alist,word):
if alist[0] == word:
return remove(alist[1:],word)
else:
return [alist[0]] + remove(alist[1:],word)
list1 = ['dog','cat','horse','dog','cat','horse']
print(remove(list1,'dog'))
main()
Run Code Online (Sandbox Code Playgroud)
这是我的代码.我不确定它有什么问题.有一个错误,指出索引超出范围我认为与我的第三行有关,但我不知道如何解决它.
我认为你的问题是你永远不会测试alist是否为空.由于你继续删除第一个元素,最终不会有任何元素,alist [0]将是一个超出范围的索引.如果你只是添加
if not alist:
return []
Run Code Online (Sandbox Code Playgroud)
在删除的顶部,我打赌你会处于良好的状态.