Python3-仅接受一个参数并使用递归返回列表的函数

斯凯拉尔·布鲁斯

这是我当前的功能:

def fn_one(x):
    _list1 = [3, 1, 5, 3, 8, 5]

    if 5 < x < 14:
        return (fn_one(x-3) * fn_one(x-2)) + fn_one(x-1)

    else:
        if x < 6:
            return _list1[x]

print(fn_one(7))

现在我的函数仅返回一个int,我要做的是返回一个包含从0到该int的返回值的列表。示例:假设我通过键入“ print(fn_one(4))”来调用该函数,然后我想返回一个列表,其中包含[fn_one(0),fn_one(1),fn_one(2),fn_one(3),fn_one (4)]仅使用递归。没有for循环或类似的东西,该函数只能使用一个变量

奥古尔

看起来您具有一个f可以f(k)返回k序列th项的函数,并且您想要创建一个g可以g(k)返回return的函数[f(0), ..., f(k)]

基本上,每种情况下都首先计算g(k-1),然后将最新结果附加到该结果上。

def fn_two(x):
    _list1 = [3, 1, 5, 3, 8, 5]

    if 5 < x < 14:
        lst = fn_two(x-1)
        lst.append((lst[x-3] * lst[x-2]) + lst[x-1])
        return lst
    else:
        if x < 6:
            # Return the first x values of _list1
            return _list1[:x+1]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章