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()
这是我的代码。我不确定它有什么问题。有一个错误,指出索引超出范围,我认为这与我的第三行有关,但我不确定如何解决它。
答案 0 :(得分:6)
我认为你的问题是你永远不会测试alist是否为空。由于你继续删除第一个元素,最终不会有任何元素,而alist [0]将是一个超出范围的索引。如果你只是添加
if not alist:
return []
到删除的顶部,我打赌你会处于良好的状态。
答案 1 :(得分:2)
正确,这一行:
if alist[0] == word:
尝试将alist
中的第一项与word
进行比较,但alist
没有项目。