1

我的问题是我有一个功能如下:

def myfunc(a):
    b=[]
    b.append(a)
    return myfunc(a-1), b*

*= 我知道这会破坏我的功能
是否有任何可能的方法允许在让我的功能继续运行的同时b使用我使用的值进行更新?a与问题相关的代码是一个最大值。问题。所以我有一个权重和值列表,以及一个最大值。允许重量。我的函数发现最大值没问题,但我想看看我用什么值来到达那里。即 w=[1,2,3] v=[4,7,2] max weight= 3, max val is = 11。我希望我的函数在版本中显示的是列表,例如使用的权重=[1 ,2] 和使用的值=[4,7]。抱歉,没有发布实际代码,该网站不允许这样做。

4

2 回答 2

2

我建议使用默认参数。

def myfunc(a, lst=None):
    if lst is None:
        lst = []
    lst.append(a)
    if a > 0:
        myfunc(a-1, lst)
    return lst

print(myfunc(5))  # prints: [5, 4, 3, 2, 1, 0]
于 2012-04-24T03:09:45.713 回答
1

你的意思是,像这样的东西?

def myfunc(a):
    if a == 0:
        return [a]
    return myfunc(a-1) + [a]

myfunc(5)

> [0, 1, 2, 3, 4, 5]
于 2012-04-24T02:47:14.107 回答