我想在python中递归地将一个列表复制到另一个列表。为此,我将字符串作为输入,定义了一个空列表并将它们作为列表发送到递归函数,以便我可以将列表复制到另一个列表。但是,错误显示“NoneType”对象没有属性“append”。我错过了什么?我在 main() 中定义了“S”作为列表。如果有其他递归方法,欢迎使用。显示错误:line 35, in string_copyreturn string_copy(k,s.append(k[i]),i+1)AttributeError: 'NoneType' object has no attribute 'append'代码是:def string_copy(k,s,i): if (i == len(k)): return s; else: return string_copy(k,s.append(k[i]),i+1)def main(): print("enter the string you want to copy:"); k = input(); s = [None]; i = 0; print("the type of k and s is:", type(k),type(s)); res = string_copy(list(k),list(s),i); print("the desired results are:","\n", res);if __name__ == "__main__": main() `
2 回答
慕标琳琳
TA贡献1830条经验 获得超9个赞
return string_copy(k,s.append(k[i]),i+1)
listappend()
方法不返回更新后的列表;它就地添加新项目并返回None
.
因此,下一次调用string_copy()
将None
作为 的值s
。
添加回答
举报
0/150
提交
取消