猿问

在python中递归地将一个列表复制到另一个列表

我想在python中递归地将一个列表复制到另一个列表。为此,我将字符串作为输入,定义了一个空列表并将它们作为列表发送到递归函数,以便我可以将列表复制到另一个列表。但是,错误显示“NoneType”对象没有属性“append”。我错过了什么?我在 main() 中定义了“S”作为列表。如果有其他递归方法,欢迎使用。


显示错误:


line 35, in string_copy

return 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()    `     


ibeautiful
浏览 196回答 2
2回答

慕标琳琳

return string_copy(k,s.append(k[i]),i+1)listappend()方法不返回更新后的列表;它就地添加新项目并返回None.因此,下一次调用string_copy()将None作为 的值s。
随时随地看视频慕课网APP

相关分类

Python
我要回答