【发布时间】:2021-04-03 06:25:39
【问题描述】:
所以我试图制作这个代码来查找列表中是否有一个数字子集,该子集总结为一个也被传入的结果。然而,每当我运行我的代码时,由于某种原因,我的 currentlist 变量变为 NoneType。这是我得到的错误:
AttributeError: 'NoneType' object has no attribute 'append'
这是我的代码:
def resultinSubset(t,s):
currentlist=[]
currentsum=0
def recresultinSubset(t,s,i,currentsum,currentlist):
if currentsum == t:
return True
if i == (len(s)):
return False
newlist=currentlist.append(s[i])
newsum=int(currentsum)+int(s[i])
including=recresultinSubset(t,s,i+1,newsum,newlist)
notincl=recresultinSubset(t,s,i+1,currentsum,currentlist)
return including + notincl
return recresultinSubset(t,s,0,currentsum,currentlist)
print(currentlist)
print(resultinSubset(6, [1,2,3]))
【问题讨论】:
-
请始终尝试提供minimal reproducible example。如果您遇到错误,请发布包括堆栈跟踪在内的整个错误消息。以下行:
newlist=currentlist.append(s[i])将None分配给newlist,因为.append返回None。请注意,.append不会创建新列表。这与递归无关。
标签: python function recursion nonetype