接收TypeError:只能将列表(不是" NoneType")连接到列表

时间:2016-09-16 02:35:50

标签: python functional-programming

对于我的计算机科学课,我们正在学习递归,而且我很难理解它。我的任务的一部分是创建一个算法,该算法返回另一个与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:])

Code

1 个答案:

答案 0 :(得分:1)

您正在检查L是否为空列表,并且您正在检查L的第一个元素是否不等于e(因此是结果的一部分),但是一旦元素等于e,您的函数就不会返回任何内容,这意味着它返回默认值None。使用else

为该情况添加正确的处理方式
else:
    return removeAll(e, L[1:])