Python 3.x 创建一个包含字符串s的Python列表,重复n次。使用递归
这是一个可以接受的递归函数吗?如果不是,你能给我展示一个更好、正确的方法吗?提前谢谢 输出应如下示例所示:Python 3.x 创建一个包含字符串s的Python列表,重复n次。使用递归,python-3.x,recursion,Python 3.x,Recursion,这是一个可以接受的递归函数吗?如果不是,你能给我展示一个更好、正确的方法吗?提前谢谢 输出应如下示例所示: 列表(3,'Dream')中的字符串应返回列表['Dream','Dream','Dream']递归函数应自行调用,并至少采用以下一般形式,将根据您尝试执行的操作而改变 def strings_in_a_list(n, s): """ ---------------------------- Creates a Python list with a string,
列表(3,'Dream')中的字符串应返回列表['Dream','Dream','Dream']递归函数应自行调用,并至少采用以下一般形式,将根据您尝试执行的操作而改变
def strings_in_a_list(n, s):
"""
----------------------------
Creates a Python list with a string, s, repeated n times. Uses recursion.
Use: list = strings_in_a_list (n, s)
-----------------------------
Preconditions:
n - a nonnegative integer (int)
s - a string (str)
Postconditions:
returns
l - a list with n copies of the string s (list of string)
-----------------------------
"""
l = []
l.append(s)
if len(l) != n:
l = l * n
return l
这会满足你的要求。终止条件是当n等于0时,返回一个空列表。否则,l
等于函数调用的结果,并在返回之前追加s
if (terminate condition):
return (final value)
else:
return function( x - 1 )
如果你能让你的程序更具可读性会更好吗。在每行的开头添加4个空格。如果将
追加到递归调用返回的列表中,而不是进行字符串串联,则可以避免运行时间O(N**2)
:;L.附加(s);返回L< /代码>谢谢,我正处于测试的中间,即将更新。由于OP问题使用列表,我想最好使用列表提供答案。非常感谢,这真的很有帮助
def strings_in_a_list(n, s):
if n == 0:
return []
else:
l = strings_in_a_list(n - 1, s)
l.append(s)
return l