对于我的计算机科学课,我们正在学习递归,而且我很难理解它。我的任务的一部分是创建一个算法,该算法返回另一个与L相同的列表,除了e的所有元素都被删除。但是,我目前正在提出一个
TypeError:只能连接列表(不是" NoneType")到列表
这是什么意思,我该如何解决?
def removeAll(e, L):
'''returns another list that is identical to L except all elements of e are removed'''
if L==[]:
return []
if L[0]!=e:
return [L[0]]+removeAll(e,L[1:])
答案 0 :(得分:1)
您正在检查L
是否为空列表,并且您正在检查L
的第一个元素是否不等于e
(因此是结果的一部分),但是一旦元素等于e
,您的函数就不会返回任何内容,这意味着它返回默认值None
。使用else
:
else:
return removeAll(e, L[1:])